diff options
Diffstat (limited to 'packages/ncurses/6.5/ncurses-6.5-20241207.patch')
-rw-r--r-- | packages/ncurses/6.5/ncurses-6.5-20241207.patch | 16808 |
1 files changed, 16808 insertions, 0 deletions
diff --git a/packages/ncurses/6.5/ncurses-6.5-20241207.patch b/packages/ncurses/6.5/ncurses-6.5-20241207.patch new file mode 100644 index 00000000..952fd072 --- /dev/null +++ b/packages/ncurses/6.5/ncurses-6.5-20241207.patch @@ -0,0 +1,16808 @@ +# ncurses 6.5 - patch 20241207 - Thomas E. Dickey +# +# ------------------------------------------------------------------------------ +# +# Ncurses 6.5 is at +# https://invisible-island.net/archives/ncurses/ +# https://invisible-mirror.net/archives/ncurses/ +# https://ftp.gnu.org/gnu/ncurses/ +# +# Patches for ncurses 6.5 can be found at +# https://invisible-island.net/archives/ncurses/6.5 +# https://invisible-mirror.net/archives/ncurses/6.5 +# +# ------------------------------------------------------------------------------ +# https://invisible-island.net/archives/ncurses/6.5/ncurses-6.5-20241207.patch.gz +# patch by Thomas E. Dickey <dickey@invisible-island.net> +# created Sun Dec 8 02:11:12 UTC 2024 +# ------------------------------------------------------------------------------ +# NEWS | 5 +# VERSION | 2 +# dist.mk | 4 +# form/fld_arg.c | 6 - +# form/fld_attr.c | 6 - +# form/fld_current.c | 12 +- +# form/fld_def.c | 26 ++-- +# form/form.priv.h | 8 - +# form/frm_driver.c | 28 ++-- +# form/frm_req_name.c | 6 - +# form/fty_enum.c | 6 - +# form/fty_generic.c | 13 +- +# form/fty_int.c | 4 +# form/fty_num.c | 4 +# form/fty_regex.c | 8 - +# include/curses.h.in | 8 - +# menu/m_driver.c | 8 - +# menu/m_global.c | 14 +- +# menu/m_item_new.c | 10 - +# menu/m_pattern.c | 6 - +# menu/m_req_name.c | 6 - +# menu/mf_common.h | 4 +# ncurses/base/MKkeyname.awk | 30 ++--- +# ncurses/base/MKlib_gen.sh | 5 +# ncurses/base/MKunctrl.awk | 10 - +# ncurses/base/define_key.c | 10 - +# ncurses/base/key_defined.c | 10 - +# ncurses/base/keybound.c | 8 - +# ncurses/base/keyok.c | 8 - +# ncurses/base/legacy_coding.c | 6 - +# ncurses/base/lib_addch.c | 6 - +# ncurses/base/lib_addstr.c | 10 - +# ncurses/base/lib_beep.c | 6 - +# ncurses/base/lib_bkgd.c | 6 - +# ncurses/base/lib_color.c | 38 +++--- +# ncurses/base/lib_colorset.c | 6 - +# ncurses/base/lib_delwin.c | 6 - +# ncurses/base/lib_dft_fgbg.c | 8 - +# ncurses/base/lib_echo.c | 8 - +# ncurses/base/lib_erase.c | 6 - +# ncurses/base/lib_freeall.c | 14 +- +# ncurses/base/lib_getch.c | 6 - +# ncurses/base/lib_initscr.c | 6 - +# ncurses/base/lib_insch.c | 6 - +# ncurses/base/lib_insnstr.c | 8 - +# ncurses/base/lib_instr.c | 12 +- +# ncurses/base/lib_mouse.c | 28 ++-- +# ncurses/base/lib_newterm.c | 18 +-- +# ncurses/base/lib_newwin.c | 67 ++++++----- +# ncurses/base/lib_nl.c | 8 - +# ncurses/base/lib_overlay.c | 10 - +# ncurses/base/lib_pad.c | 16 +- +# ncurses/base/lib_printw.c | 6 - +# ncurses/base/lib_redrawln.c | 6 - +# ncurses/base/lib_restart.c | 6 - +# ncurses/base/lib_screen.c | 56 ++++----- +# ncurses/base/lib_set_term.c | 74 ++++++------- +# ncurses/base/lib_slk.c | 20 +-- +# ncurses/base/lib_slkatr_set.c | 8 - +# ncurses/base/lib_slkatrof.c | 6 - +# ncurses/base/lib_slkatron.c | 6 - +# ncurses/base/lib_slkatrset.c | 6 - +# ncurses/base/lib_slkattr.c | 6 - +# ncurses/base/lib_slkclear.c | 6 - +# ncurses/base/lib_slkcolor.c | 8 - +# ncurses/base/lib_slklab.c | 8 - +# ncurses/base/lib_slkrefr.c | 8 - +# ncurses/base/lib_slkset.c | 16 +- +# ncurses/base/lib_slktouch.c | 6 - +# ncurses/base/lib_ungetch.c | 6 - +# ncurses/base/lib_wattron.c | 6 - +# ncurses/base/lib_winch.c | 6 - +# ncurses/base/lib_window.c | 14 +- +# ncurses/base/nc_panel.c | 6 - +# ncurses/base/new_pair.c | 12 +- +# ncurses/base/resizeterm.c | 24 ++-- +# ncurses/base/tries.c | 20 +-- +# ncurses/base/wresize.c | 16 +- +# ncurses/curses.priv.h | 50 ++++---- +# ncurses/new_pair.h | 4 +# ncurses/report_offsets.c | 8 - +# ncurses/tinfo/MKcaptab.awk | 6 - +# ncurses/tinfo/MKcaptab.sh | 22 +-- +# ncurses/tinfo/MKcodes.awk | 6 - +# ncurses/tinfo/MKfallback.sh | 6 - +# ncurses/tinfo/MKnames.awk | 6 - +# ncurses/tinfo/MKuserdefs.sh | 8 - +# ncurses/tinfo/access.c | 12 +- +# ncurses/tinfo/add_tries.c | 18 +-- +# ncurses/tinfo/alloc_entry.c | 12 +- +# ncurses/tinfo/alloc_ttype.c | 12 +- +# ncurses/tinfo/captoinfo.c | 24 ++-- +# ncurses/tinfo/comp_error.c | 16 +- +# ncurses/tinfo/comp_expand.c | 18 +-- +# ncurses/tinfo/comp_hash.c | 14 +- +# ncurses/tinfo/comp_parse.c | 20 +-- +# ncurses/tinfo/comp_scan.c | 62 +++++----- +# ncurses/tinfo/db_iterator.c | 54 ++++----- +# ncurses/tinfo/doalloc.c | 6 - +# ncurses/tinfo/entries.c | 24 ++-- +# ncurses/tinfo/getenv_num.c | 8 - +# ncurses/tinfo/home_terminfo.c | 8 - +# ncurses/tinfo/init_keytry.c | 6 - +# ncurses/tinfo/lib_acs.c | 12 +- +# ncurses/tinfo/lib_baudrate.c | 6 - +# ncurses/tinfo/lib_cur_term.c | 14 +- +# ncurses/tinfo/lib_data.c | 26 ++-- +# ncurses/tinfo/lib_kernel.c | 10 - +# ncurses/tinfo/lib_options.c | 16 +- +# ncurses/tinfo/lib_print.c | 6 - +# ncurses/tinfo/lib_raw.c | 18 +-- +# ncurses/tinfo/lib_setup.c | 49 ++++---- +# ncurses/tinfo/lib_termcap.c | 44 +++---- +# ncurses/tinfo/lib_termname.c | 8 - +# ncurses/tinfo/lib_ti.c | 10 - +# ncurses/tinfo/lib_tparm.c | 32 ++--- +# ncurses/tinfo/lib_tputs.c | 22 +-- +# ncurses/tinfo/lib_ttyflags.c | 28 ++-- +# ncurses/tinfo/make_hash.c | 38 +++--- +# ncurses/tinfo/make_keys.c | 22 +-- +# ncurses/tinfo/name_match.c | 14 +- +# ncurses/tinfo/obsolete.c | 8 - +# ncurses/tinfo/parse_entry.c | 24 ++-- +# ncurses/tinfo/read_entry.c | 22 +-- +# ncurses/tinfo/strings.c | 14 +- +# ncurses/tinfo/trim_sgr0.c | 12 +- +# ncurses/tinfo/write_entry.c | 12 +- +# ncurses/trace/lib_trace.c | 16 +- +# ncurses/trace/lib_traceatr.c | 24 ++-- +# ncurses/trace/lib_tracebits.c | 6 - +# ncurses/trace/lib_tracechr.c | 8 - +# ncurses/trace/lib_tracedmp.c | 8 - +# ncurses/trace/lib_tracemse.c | 10 - +# ncurses/trace/trace_buf.c | 26 ++-- +# ncurses/trace/trace_tries.c | 10 - +# ncurses/trace/varargs.c | 10 - +# ncurses/trace/visbuf.c | 20 +-- +# ncurses/tty/MKexpanded.sh | 11 + +# ncurses/tty/hardscroll.c | 12 +- +# ncurses/tty/hashmap.c | 6 - +# ncurses/tty/lib_mvcur.c | 24 ++-- +# ncurses/tty/lib_tstp.c | 8 - +# ncurses/tty/lib_twait.c | 4 +# ncurses/tty/lib_vidattr.c | 10 - +# ncurses/tty/tty_update.c | 28 ++-- +# ncurses/wcwidth.h | 4 +# ncurses/widechar/lib_add_wch.c | 4 +# ncurses/widechar/lib_box_set.c | 6 - +# ncurses/widechar/lib_cchar.c | 4 +# ncurses/widechar/lib_get_wch.c | 8 - +# ncurses/widechar/lib_hline_set.c | 6 - +# ncurses/widechar/lib_in_wch.c | 8 - +# ncurses/widechar/lib_in_wchnstr.c | 6 - +# ncurses/widechar/lib_ins_wch.c | 8 - +# ncurses/widechar/lib_inwstr.c | 6 - +# ncurses/widechar/lib_pecho_wchar.c | 6 - +# ncurses/widechar/lib_slk_wset.c | 8 - +# ncurses/widechar/lib_unget_wch.c | 10 - +# ncurses/widechar/lib_vid_attr.c | 26 ++-- +# ncurses/widechar/lib_vline_set.c | 6 - +# ncurses/widechar/lib_wacs.c | 8 - +# ncurses/widechar/lib_wunctrl.c | 8 - +# package/debian-mingw/changelog | 4 +# package/debian-mingw64/changelog | 4 +# package/debian/changelog | 4 +# package/mingw-ncurses.nsi | 4 +# package/mingw-ncurses.spec | 2 +# package/ncurses.spec | 2 +# package/ncursest.spec | 2 +# panel/p_above.c | 16 +- +# panel/p_below.c | 18 +-- +# panel/p_new.c | 6 - +# panel/panel.c | 18 +-- +# panel/panel.priv.h | 6 - +# progs/dump_entry.c | 40 +++---- +# progs/infocmp.c | 56 ++++----- +# progs/reset_cmd.c | 18 +-- +# progs/tabs.c | 38 +++--- +# progs/tic.c | 118 ++++++++++---------- +# progs/toe.c | 50 ++++---- +# progs/tput.c | 14 +- +# progs/tset.c | 54 ++++----- +# test/blue.c | 4 +# test/bs.c | 12 +- +# test/cardfile.c | 52 ++++----- +# test/chgat.c | 24 ++-- +# test/clip_printw.c | 24 ++-- +# test/color_content.c | 4 +# test/color_name.h | 8 - +# test/combine.c | 4 +# test/demo_altkeys.c | 12 +- +# test/demo_defkey.c | 30 ++--- +# test/demo_forms.c | 36 +++--- +# test/demo_keyok.c | 4 +# test/demo_menus.c | 58 +++++----- +# test/demo_new_pair.c | 8 - +# test/demo_panels.c | 48 ++++---- +# test/demo_termcap.c | 64 +++++------ +# test/demo_terminfo.c | 66 +++++------ +# test/ditto.c | 20 +-- +# test/dots.c | 8 - +# test/dots_curses.c | 4 +# test/dots_mvcur.c | 10 - +# test/dots_termcap.c | 16 +- +# test/dots_xcurses.c | 4 +# test/dump_window.c | 18 +-- +# test/dup_field.c | 12 +- +# test/echochar.c | 10 - +# test/edit_field.c | 14 +- +# test/filter.c | 12 +- +# test/foldkeys.c | 16 +- +# test/form_driver_w.c | 4 +# test/gdc.c | 6 - +# test/inch_wide.c | 14 +- +# test/inchs.c | 16 +- +# test/ins_wide.c | 8 - +# test/insdelln.c | 22 +-- +# test/inserts.c | 8 - +# test/key_names.c | 6 - +# test/keynames.c | 6 - +# test/linedata.h | 10 - +# test/list_keys.c | 12 +- +# test/move_field.c | 12 +- +# test/movewindow.c | 42 +++---- +# test/ncurses.c | 199 +++++++++++++++++------------------ +# test/padview.c | 18 +-- +# test/pair_content.c | 4 +# test/picsmap.c | 132 +++++++++++------------ +# test/popup_msg.c | 8 - +# test/railroad.c | 30 ++--- +# test/rain.c | 4 +# test/redraw.c | 4 +# test/savescreen.c | 22 +-- +# test/sp_tinfo.c | 10 - +# test/tclock.c | 4 +# test/test_add_wchstr.c | 18 +-- +# test/test_addchstr.c | 18 +-- +# test/test_addstr.c | 8 - +# test/test_addwstr.c | 8 - +# test/test_arrays.c | 4 +# test/test_get_wstr.c | 14 +- +# test/test_getstr.c | 14 +- +# test/test_instr.c | 14 +- +# test/test_inwstr.c | 14 +- +# test/test_opaque.c | 12 +- +# test/test_setupterm.c | 10 - +# test/test_sgr.c | 24 ++-- +# test/test_tparm.c | 49 ++++---- +# test/test_vid_puts.c | 6 - +# test/test_vidputs.c | 4 +# test/testcurs.c | 12 +- +# test/view.c | 26 ++-- +# test/xmas.c | 78 ++++++------- +# 253 files changed, 2122 insertions(+), 2100 deletions(-) +# ------------------------------------------------------------------------------ +Index: NEWS +Prereq: 1.4207 +--- ncurses-6.5-20241130+/NEWS 2024-11-30 19:41:55.000000000 +0000 ++++ ncurses-6.5-20241207/NEWS 2024-12-07 23:51:39.000000000 +0000 +@@ -26,7 +26,7 @@ + -- sale, use or other dealings in this Software without prior written -- + -- authorization. -- + ------------------------------------------------------------------------------- +--- $Id: NEWS,v 1.4207 2024/11/30 19:41:55 tom Exp $ ++-- $Id: NEWS,v 1.4209 2024/12/07 23:51:39 tom Exp $ + ------------------------------------------------------------------------------- + + This is a log of changes that ncurses has gone through since Zeyd started +@@ -46,6 +46,9 @@ + Changes through 1.9.9e did not credit all contributions; + it is not possible to add this information. + ++20241207 ++ + strict compiler-warning fixes for upcoming gcc15 ++ + 20241130 + + improve configure check for lint program. + + adjust options in test-programs to allow for consistent use of -c/-l +Index: VERSION +--- ncurses-6.5-20241130+/VERSION 2024-11-30 10:55:07.000000000 +0000 ++++ ncurses-6.5-20241207/VERSION 2024-12-07 11:51:44.000000000 +0000 +@@ -1 +1 @@ +-5:0:10 6.5 20241130 ++5:0:10 6.5 20241207 +Index: dist.mk +Prereq: 1.1643 +--- ncurses-6.5-20241130+/dist.mk 2024-11-30 10:55:07.000000000 +0000 ++++ ncurses-6.5-20241207/dist.mk 2024-12-07 11:51:44.000000000 +0000 +@@ -26,7 +26,7 @@ + # use or other dealings in this Software without prior written # + # authorization. # + ############################################################################## +-# $Id: dist.mk,v 1.1643 2024/11/30 10:55:07 tom Exp $ ++# $Id: dist.mk,v 1.1644 2024/12/07 11:51:44 tom Exp $ + # Makefile for creating ncurses distributions. + # + # This only needs to be used directly as a makefile by developers, but +@@ -38,7 +38,7 @@ + # These define the major/minor/patch versions of ncurses. + NCURSES_MAJOR = 6 + NCURSES_MINOR = 5 +-NCURSES_PATCH = 20241130 ++NCURSES_PATCH = 20241207 + + # We don't append the patch to the version, since this only applies to releases + VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR) +Index: form/fld_arg.c +Prereq: 1.18 +--- ncurses-6.5-20241130+/form/fld_arg.c 2020-12-11 22:05:24.000000000 +0000 ++++ ncurses-6.5-20241207/form/fld_arg.c 2024-12-07 23:00:37.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2018,2020 Thomas E. Dickey * ++ * Copyright 2018-2020,2024 Thomas E. Dickey * + * Copyright 1998-2012,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -33,7 +33,7 @@ + + #include "form.priv.h" + +-MODULE_ID("$Id: fld_arg.c,v 1.18 2020/12/11 22:05:24 tom Exp $") ++MODULE_ID("$Id: fld_arg.c,v 1.19 2024/12/07 23:00:37 tom Exp $") + + /*--------------------------------------------------------------------------- + | Facility : libnform +@@ -75,7 +75,7 @@ + TR_FUNC_ARG(1, copy_arg), + TR_FUNC_ARG(2, free_arg))); + +- if (typ != 0 && make_arg != (void *)0) ++ if (typ != NULL && make_arg != NULL) + { + SetStatus(typ, _HAS_ARGS); + typ->makearg = make_arg; +Index: form/fld_attr.c +Prereq: 1.15 +--- ncurses-6.5-20241130+/form/fld_attr.c 2020-12-11 22:05:24.000000000 +0000 ++++ ncurses-6.5-20241207/form/fld_attr.c 2024-12-07 23:01:42.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 1998-2010,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -33,7 +33,7 @@ + + #include "form.priv.h" + +-MODULE_ID("$Id: fld_attr.c,v 1.15 2020/12/11 22:05:24 tom Exp $") ++MODULE_ID("$Id: fld_attr.c,v 1.16 2024/12/07 23:01:42 tom Exp $") + + /*---------------------------------------------------------------------------- + Field-Attribute manipulation routines +@@ -47,7 +47,7 @@ + if ( attr==A_NORMAL || ((attr & A_ATTRIBUTES)==attr) )\ + {\ + Normalize_Field( field );\ +- if (field != 0) \ ++ if (field != NULL) \ + { \ + if ((field -> name) != attr)\ + {\ +Index: form/fld_current.c +Prereq: 1.16 +--- ncurses-6.5-20241130+/form/fld_current.c 2020-05-24 01:40:20.000000000 +0000 ++++ ncurses-6.5-20241207/form/fld_current.c 2024-12-07 23:01:42.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 1998-2010,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -33,7 +33,7 @@ + + #include "form.priv.h" + +-MODULE_ID("$Id: fld_current.c,v 1.16 2020/05/24 01:40:20 anonymous.maarten Exp $") ++MODULE_ID("$Id: fld_current.c,v 1.17 2024/12/07 23:01:42 tom Exp $") + + /*--------------------------------------------------------------------------- + | Facility : libnform +@@ -54,7 +54,7 @@ + int err = E_OK; + + T((T_CALLED("set_current_field(%p,%p)"), (void *)form, (void *)field)); +- if (form == 0 || field == 0) ++ if (form == NULL || field == NULL) + { + RETURN(E_BAD_ARGUMENT); + } +@@ -117,11 +117,11 @@ + unfocus_current_field(FORM *const form) + { + T((T_CALLED("unfocus_current_field(%p)"), (const void *)form)); +- if (form == 0) ++ if (form == NULL) + { + RETURN(E_BAD_ARGUMENT); + } +- else if (form->current == 0) ++ else if (form->current == NULL) + { + RETURN(E_REQUEST_DENIED); + } +@@ -158,7 +158,7 @@ + field_index(const FIELD *field) + { + T((T_CALLED("field_index(%p)"), (const void *)field)); +- returnCode((field != 0 && field->form != 0) ? (int)field->index : -1); ++ returnCode((field != NULL && field->form != NULL) ? (int)field->index : -1); + } + + /* fld_current.c ends here */ +Index: form/fld_def.c +Prereq: 1.45 +--- ncurses-6.5-20241130+/form/fld_def.c 2024-11-30 21:41:08.000000000 +0000 ++++ ncurses-6.5-20241207/form/fld_def.c 2024-12-07 21:56:21.000000000 +0000 +@@ -33,7 +33,7 @@ + + #include "form.priv.h" + +-MODULE_ID("$Id: fld_def.c,v 1.45 2024/11/30 21:41:08 tom Exp $") ++MODULE_ID("$Id: fld_def.c,v 1.46 2024/12/07 21:56:21 tom Exp $") + + /* this can't be readonly */ + static FIELD default_field = +@@ -87,14 +87,14 @@ + { + TypeArgument *res = (TypeArgument *)0; + +- if (typ != 0 && (typ->status & _HAS_ARGS) != 0) ++ if (typ != NULL && (typ->status & _HAS_ARGS) != 0) + { + assert(err != 0 && ap != (va_list *)0); + if ((typ->status & _LINKED_TYPE) != 0) + { + TypeArgument *p = typeMalloc(TypeArgument, 1); + +- if (p != 0) ++ if (p != NULL) + { + p->left = _nc_Make_Argument(typ->left, ap, err); + p->right = _nc_Make_Argument(typ->right, ap, err); +@@ -134,14 +134,14 @@ + { + TypeArgument *res = (TypeArgument *)0; + +- if (typ != 0 && (typ->status & _HAS_ARGS) != 0) ++ if (typ != NULL && (typ->status & _HAS_ARGS) != 0) + { + assert(err != 0 && argp != 0); + if ((typ->status & _LINKED_TYPE) != 0) + { + TypeArgument *p = typeMalloc(TypeArgument, 1); + +- if (p != 0) ++ if (p != NULL) + { + p->left = _nc_Copy_Argument(typ, argp->left, err); + p->right = _nc_Copy_Argument(typ, argp->right, err); +@@ -180,11 +180,11 @@ + FORM_EXPORT(void) + _nc_Free_Argument(const FIELDTYPE *typ, TypeArgument *argp) + { +- if (typ != 0 && (typ->status & _HAS_ARGS) != 0) ++ if (typ != NULL && (typ->status & _HAS_ARGS) != 0) + { + if ((typ->status & _LINKED_TYPE) != 0) + { +- if (argp != 0) ++ if (argp != NULL) + { + _nc_Free_Argument(typ->left, argp->left); + _nc_Free_Argument(typ->right, argp->right); +@@ -229,7 +229,7 @@ + } + else + { +- if (dst->type != 0) ++ if (dst->type != NULL) + { + dst->type->ref++; + } +@@ -249,7 +249,7 @@ + _nc_Free_Type(FIELD *field) + { + assert(field != 0); +- if (field->type != 0) ++ if (field->type != NULL) + { + field->type->ref--; + _nc_Free_Argument(field->type, (TypeArgument *)(field->arg)); +@@ -289,7 +289,7 @@ + nrow >= 0 && + nbuf >= 0 && + ((err = E_SYSTEM_ERROR) != 0) && /* trick: this resets the default error */ +- (New_Field = typeMalloc(FIELD, 1)) != 0) ++ (New_Field = typeMalloc(FIELD, 1)) != NULL) + { + T((T_CREATE("field %p"), (void *)New_Field)); + *New_Field = default_field; +@@ -360,13 +360,13 @@ + { + RETURN(E_BAD_ARGUMENT); + } +- else if (field->form != 0) ++ else if (field->form != NULL) + { + RETURN(E_CONNECTED); + } + else if (field == field->link) + { +- if (field->buf != 0) ++ if (field->buf != NULL) + free(field->buf); + } + else +@@ -380,7 +380,7 @@ + } + _nc_Free_Type(field); + #if USE_WIDEC_SUPPORT +- if (field->expanded != 0) ++ if (field->expanded != NULL) + { + int n; + +Index: form/form.priv.h +Prereq: 0.49 +--- ncurses-6.5-20241130+/form/form.priv.h 2024-02-24 12:17:31.000000000 +0000 ++++ ncurses-6.5-20241207/form/form.priv.h 2024-12-07 21:57:21.000000000 +0000 +@@ -31,7 +31,7 @@ + * Author: Juergen Pfeifer, 1995,1997 * + ****************************************************************************/ + +-/* $Id: form.priv.h,v 0.49 2024/02/24 12:17:31 tom Exp $ */ ++/* $Id: form.priv.h,v 0.50 2024/12/07 21:57:21 tom Exp $ */ + + #ifndef FORM_PRIV_H + #define FORM_PRIV_H 1 +@@ -93,11 +93,11 @@ + + /* If form is NULL replace form argument by default-form */ + #define Normalize_Form(form) \ +- ((form) = (form != 0) ? (form) : _nc_Default_Form) ++ ((form) = (form != NULL) ? (form) : _nc_Default_Form) + + /* If field is NULL replace field argument by default-field */ + #define Normalize_Field(field) \ +- ((field) = (field != 0) ? (field) : _nc_Default_Field) ++ ((field) = (field != NULL) ? (field) : _nc_Default_Field) + + #if NCURSES_SP_FUNCS + #define Get_Form_Screen(form) \ +@@ -260,7 +260,7 @@ + int len; \ + int n; \ + wchar_t *list = _nc_Widen_String((char *)buffer, &len); \ +- if (list != 0) \ ++ if (list != NULL) \ + { \ + result = TRUE; \ + for (n = 0; n < len; ++n) \ +Index: form/frm_driver.c +Prereq: 1.136 +--- ncurses-6.5-20241130+/form/frm_driver.c 2024-07-27 18:49:18.000000000 +0000 ++++ ncurses-6.5-20241207/form/frm_driver.c 2024-12-07 21:57:21.000000000 +0000 +@@ -33,7 +33,7 @@ + + #include "form.priv.h" + +-MODULE_ID("$Id: frm_driver.c,v 1.136 2024/07/27 18:49:18 tom Exp $") ++MODULE_ID("$Id: frm_driver.c,v 1.137 2024/12/07 21:57:21 tom Exp $") + + /*---------------------------------------------------------------------------- + This is the core module of the form library. It contains the majority +@@ -734,7 +734,7 @@ + { + WINDOW *new_window = newpad(field->drows, field->dcols); + +- if (new_window != 0) ++ if (new_window != NULL) + { + assert(form != (FORM *)0); + if (form->w) +@@ -802,7 +802,7 @@ + Field_encloses(FIELD *field, int ry, int rx) + { + T((T_CALLED("Field_encloses(%p)"), (void *)field)); +- if (field != 0 ++ if (field != NULL + && field->frow <= ry + && (field->frow + field->rows) > ry + && field->fcol <= rx +@@ -1251,7 +1251,7 @@ + return (E_SYSTEM_ERROR); + + for (linked_field = field->link; +- (linked_field != field) && (linked_field != 0); ++ (linked_field != field) && (linked_field != NULL); + linked_field = linked_field->link) + { + int syncres; +@@ -1458,7 +1458,7 @@ + werase(form->w); + Perform_Justification(field, form->w); + if (Field_Has_Option(field, O_DYNAMIC_JUSTIFY) && +- (form->w->_parent == 0)) ++ (form->w->_parent == NULL)) + { + copywin(form->w, + Get_Form_Window(form), +@@ -1480,7 +1480,7 @@ + } + delwin(form->w); + form->w = (WINDOW *)0; +- form->current = 0; ++ form->current = NULL; + } + + /*--------------------------------------------------------------------------- +@@ -4758,7 +4758,7 @@ + int len; + + #if USE_WIDEC_SUPPORT +- FIELD_CELL *widevalue = 0; ++ FIELD_CELL *widevalue = NULL; + #endif + + T((T_CALLED("set_field_buffer(%p,%d,%s)"), (void *)field, buffer, _nc_visbuf(value))); +@@ -4807,7 +4807,7 @@ + wclear(field->working); + (void)mvwaddstr(field->working, 0, 0, value); + +- if ((widevalue = typeCalloc(FIELD_CELL, len + 1)) == 0) ++ if ((widevalue = typeCalloc(FIELD_CELL, len + 1)) == NULL) + { + RETURN(E_SYSTEM_ERROR); + } +@@ -4869,7 +4869,7 @@ + FORM_EXPORT(char *) + field_buffer(const FIELD *field, int buffer) + { +- char *result = 0; ++ char *result = NULL; + + T((T_CALLED("field_buffer(%p,%d)"), (const void *)field, buffer)); + +@@ -4890,14 +4890,14 @@ + size_t next; + + init_mb(state); +- next = _nc_wcrtomb(0, data[n].chars[0], &state); ++ next = _nc_wcrtomb(NULL, data[n].chars[0], &state); + if (next > 0) + need += next; + } + } + + /* allocate a place to store the expanded string */ +- if (field->expanded[buffer] != 0) ++ if (field->expanded[buffer] != NULL) + free(field->expanded[buffer]); + field->expanded[buffer] = typeMalloc(char, need + 1); + +@@ -4909,7 +4909,7 @@ + * contain embedded wide-character extensions). Change the null-padding + * to blanks as needed. + */ +- if ((result = field->expanded[buffer]) != 0) ++ if ((result = field->expanded[buffer]) != NULL) + { + wclear(field->working); + wmove(field->working, 0, 0); +@@ -4937,7 +4937,7 @@ + FORM_EXPORT(wchar_t *) + _nc_Widen_String(char *source, int *lengthp) + { +- wchar_t *result = 0; ++ wchar_t *result = NULL; + wchar_t wch = 0; + size_t given = strlen(source); + size_t tries; +@@ -4999,7 +4999,7 @@ + result = typeCalloc(wchar_t, need); + + *lengthp = (int)need; +- if (result == 0) ++ if (result == NULL) + break; + } + } +Index: form/frm_req_name.c +Prereq: 1.23 +--- ncurses-6.5-20241130+/form/frm_req_name.c 2021-06-17 21:11:08.000000000 +0000 ++++ ncurses-6.5-20241207/form/frm_req_name.c 2024-12-07 23:00:37.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020,2021 Thomas E. Dickey * ++ * Copyright 2020-2021,2024 Thomas E. Dickey * + * Copyright 1998-2012,2015 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -38,7 +38,7 @@ + + #include "form.priv.h" + +-MODULE_ID("$Id: frm_req_name.c,v 1.23 2021/06/17 21:11:08 tom Exp $") ++MODULE_ID("$Id: frm_req_name.c,v 1.24 2024/12/07 23:00:37 tom Exp $") + + #define DATA(s) { s } + +@@ -153,7 +153,7 @@ + + T((T_CALLED("form_request_by_name(%s)"), _nc_visbuf(str))); + +- if (str != 0 && (i = strlen(str)) != 0) ++ if (str != NULL && (i = strlen(str)) != 0) + { + char buf[16]; /* longest name is 10 chars */ + +Index: form/fty_enum.c +Prereq: 1.34 +--- ncurses-6.5-20241130+/form/fty_enum.c 2024-07-27 18:50:22.000000000 +0000 ++++ ncurses-6.5-20241207/form/fty_enum.c 2024-12-07 21:58:32.000000000 +0000 +@@ -35,7 +35,7 @@ + + #include "form.priv.h" + +-MODULE_ID("$Id: fty_enum.c,v 1.34 2024/07/27 18:50:22 tom Exp $") ++MODULE_ID("$Id: fty_enum.c,v 1.35 2024/12/07 21:58:32 tom Exp $") + + typedef struct + { +@@ -104,7 +104,7 @@ + argp->kwds = typeMalloc(char *, cnt + 1); + + kp = kwds; +- if ((kptarget = argp->kwds) != 0) ++ if ((kptarget = argp->kwds) != NULL) + { + while (kp && (*kp)) + { +@@ -168,7 +168,7 @@ + char **kp = ap->kwds; + result->kwds = typeMalloc(char *, 1 + ap->count); + +- if ((kptarget = result->kwds) != 0) ++ if ((kptarget = result->kwds) != NULL) + { + while (kp && (*kp)) + { +Index: form/fty_generic.c +Prereq: 1.16 +--- ncurses-6.5-20241130+/form/fty_generic.c 2024-07-27 18:51:24.000000000 +0000 ++++ ncurses-6.5-20241207/form/fty_generic.c 2024-12-07 23:12:11.000000000 +0000 +@@ -35,7 +35,7 @@ + + #include "form.priv.h" + +-MODULE_ID("$Id: fty_generic.c,v 1.16 2024/07/27 18:51:24 tom Exp $") ++MODULE_ID("$Id: fty_generic.c,v 1.17 2024/12/07 23:12:11 tom Exp $") + + /* + * This is not a full implementation of a field type, but adds some +@@ -170,7 +170,10 @@ + { + TypeArgument *res = (TypeArgument *)0; + +- if (typ != 0 && (typ->status & _HAS_ARGS) != 0 && err != 0 && argiterator != 0) ++ if (typ != NULL ++ && (typ->status & _HAS_ARGS) != 0 ++ && err != NULL ++ && argiterator != NULL) + { + if (typ->status & _LINKED_TYPE) + { +@@ -189,14 +192,14 @@ + else + { + assert(typ->genericarg != (void *)0); +- if (typ->genericarg == 0) ++ if (typ->genericarg == NULL) + *err += 1; + else + { + void *argp; + int valid = argiterator(&argp); + +- if (valid == 0 || argp == 0 || ++ if (valid == 0 || argp == NULL || + !(res = (TypeArgument *)typ->genericarg(argp))) + { + *err += 1; +@@ -282,7 +285,7 @@ + int code = E_SYSTEM_ERROR; + WINDOW *res = (WINDOW *)0; + +- if (form != 0 && pRow != 0 && pCol != 0) ++ if (form != NULL && pRow != NULL && pCol != NULL) + { + *pRow = form->currow; + *pCol = form->curcol; +Index: form/fty_int.c +Prereq: 1.34 +--- ncurses-6.5-20241130+/form/fty_int.c 2024-07-27 18:35:02.000000000 +0000 ++++ ncurses-6.5-20241207/form/fty_int.c 2024-12-07 21:58:32.000000000 +0000 +@@ -35,7 +35,7 @@ + + #include "form.priv.h" + +-MODULE_ID("$Id: fty_int.c,v 1.34 2024/07/27 18:35:02 tom Exp $") ++MODULE_ID("$Id: fty_int.c,v 1.35 2024/12/07 21:58:32 tom Exp $") + + #if USE_WIDEC_SUPPORT + #define isDigit(c) (iswdigit((wint_t)(c)) || isdigit(UChar(c))) +@@ -184,7 +184,7 @@ + int len; + wchar_t *list = _nc_Widen_String((char *)bp, &len); + +- if (list != 0) ++ if (list != NULL) + { + bool blank = FALSE; + int n; +Index: form/fty_num.c +Prereq: 1.38 +--- ncurses-6.5-20241130+/form/fty_num.c 2024-07-27 18:33:58.000000000 +0000 ++++ ncurses-6.5-20241207/form/fty_num.c 2024-12-07 21:58:32.000000000 +0000 +@@ -35,7 +35,7 @@ + + #include "form.priv.h" + +-MODULE_ID("$Id: fty_num.c,v 1.38 2024/07/27 18:33:58 tom Exp $") ++MODULE_ID("$Id: fty_num.c,v 1.39 2024/12/07 21:58:32 tom Exp $") + + #if HAVE_LOCALE_H + #include <locale.h> +@@ -203,7 +203,7 @@ + int len; + wchar_t *list = _nc_Widen_String((char *)bp, &len); + +- if (list != 0) ++ if (list != NULL) + { + bool blank = FALSE; + int state = 0; +Index: form/fty_regex.c +Prereq: 1.33 +--- ncurses-6.5-20241130+/form/fty_regex.c 2021-08-14 15:01:52.000000000 +0000 ++++ ncurses-6.5-20241207/form/fty_regex.c 2024-12-07 23:02:27.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2018-2020,2021 Thomas E. Dickey * ++ * Copyright 2018-2021,2024 Thomas E. Dickey * + * Copyright 1998-2012,2015 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -35,7 +35,7 @@ + + #include "form.priv.h" + +-MODULE_ID("$Id: fty_regex.c,v 1.33 2021/08/14 15:01:52 tom Exp $") ++MODULE_ID("$Id: fty_regex.c,v 1.34 2024/12/07 23:02:27 tom Exp $") + + #if HAVE_REGEX_H_FUNCS || HAVE_LIB_PCRE2 /* We prefer POSIX regex */ + +@@ -157,12 +157,12 @@ + if (preg) + { + T((T_CREATE("RegExp_Arg %p"), (void *)preg)); +- if (((preg->pRegExp = typeMalloc(regex_t, 1)) != 0) ++ if (((preg->pRegExp = typeMalloc(regex_t, 1)) != NULL) + && !regcomp(preg->pRegExp, rx, + (REG_EXTENDED | REG_NOSUB | REG_NEWLINE))) + { + T((T_CREATE("regex_t %p"), (void *)preg->pRegExp)); +- if ((preg->refCount = typeMalloc(unsigned long, 1)) != 0) ++ if ((preg->refCount = typeMalloc(unsigned long, 1)) != NULL) + *(preg->refCount) = 1; + } + else +Index: include/curses.h.in +Prereq: 1.282 +--- ncurses-6.5-20241130+/include/curses.h.in 2024-01-19 11:50:07.000000000 +0000 ++++ ncurses-6.5-20241207/include/curses.h.in 2024-12-07 17:14:44.000000000 +0000 +@@ -33,7 +33,7 @@ + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +-/* $Id: curses.h.in,v 1.282 2024/01/19 11:50:07 tom Exp $ */ ++/* $Id: curses.h.in,v 1.284 2024/12/07 17:14:44 tom Exp $ */ + + #ifndef __NCURSES_H + #define __NCURSES_H +@@ -125,10 +125,10 @@ + * doing so makes it incompatible with other implementations of X/Open Curses. + */ + #undef NCURSES_CONST +-#define NCURSES_CONST @NCURSES_CONST@ ++#define NCURSES_CONST @NCURSES_CONST@ /* for old compilers */ + + #undef NCURSES_INLINE +-#define NCURSES_INLINE @NCURSES_INLINE@ ++#define NCURSES_INLINE @NCURSES_INLINE@ /* for old compilers */ + + /* + * The standard type used for color values, and for color-pairs. The latter +@@ -833,7 +833,7 @@ + extern NCURSES_EXPORT(int) vwprintw (WINDOW *, const char *, va_list) GCC_DEPRECATED(use vw_printw) /* implemented */ + GCC_PRINTFLIKE(2,0); + extern NCURSES_EXPORT(int) vw_printw (WINDOW *, const char *, va_list) /* implemented */ +- GCC_PRINTFLIKE(2,0); ++ GCC_PRINTFLIKE(2,0); + extern NCURSES_EXPORT(int) vwscanw (WINDOW *, const char *, va_list) GCC_DEPRECATED(use vw_scanw) /* implemented */ + GCC_SCANFLIKE(2,0); + extern NCURSES_EXPORT(int) vw_scanw (WINDOW *, const char *, va_list) /* implemented */ +Index: menu/m_driver.c +Prereq: 1.38 +--- ncurses-6.5-20241130+/menu/m_driver.c 2024-07-27 18:14:20.000000000 +0000 ++++ ncurses-6.5-20241207/menu/m_driver.c 2024-12-07 22:01:57.000000000 +0000 +@@ -38,7 +38,7 @@ + + #include "menu.priv.h" + +-MODULE_ID("$Id: m_driver.c,v 1.38 2024/07/27 18:14:20 tom Exp $") ++MODULE_ID("$Id: m_driver.c,v 1.39 2024/12/07 22:01:57 tom Exp $") + + /* Macros */ + +@@ -307,7 +307,7 @@ + else + { + my_top_row += rdiff; +- while (rdiff-- > 0 && item != 0 && item->down != 0) ++ while (rdiff-- > 0 && item != NULL && item->down != NULL) + item = item->down; + } + break; +@@ -320,7 +320,7 @@ + else + { + my_top_row -= rdiff; +- while (rdiff-- > 0 && item != 0 && item->up != 0) ++ while (rdiff-- > 0 && item != NULL && item->up != NULL) + item = item->up; + } + break; +@@ -548,7 +548,7 @@ + result = E_UNKNOWN_COMMAND; + } + +- if (item == 0) ++ if (item == NULL) + { + result = E_BAD_STATE; + } +Index: menu/m_global.c +Prereq: 1.34 +--- ncurses-6.5-20241130+/menu/m_global.c 2023-09-16 16:39:26.000000000 +0000 ++++ ncurses-6.5-20241207/menu/m_global.c 2024-12-07 23:02:27.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020-2021,2023 Thomas E. Dickey * ++ * Copyright 2020-2023,2024 Thomas E. Dickey * + * Copyright 1998-2012,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -38,7 +38,7 @@ + + #include "menu.priv.h" + +-MODULE_ID("$Id: m_global.c,v 1.34 2023/09/16 16:39:26 tom Exp $") ++MODULE_ID("$Id: m_global.c,v 1.35 2024/12/07 23:02:27 tom Exp $") + + static char mark[] = "-"; + /* *INDENT-OFF* */ +@@ -256,13 +256,13 @@ + int result = item->length; + + T((T_CALLED("_nc_menu_text_width(%p)"), (const void *)item)); +- if (result != 0 && item->str != 0) ++ if (result != 0 && item->str != NULL) + { +- int count = (int)mbstowcs(0, item->str, 0); +- wchar_t *temp = 0; ++ int count = (int)mbstowcs(NULL, item->str, 0); ++ wchar_t *temp = NULL; + + if (count > 0 +- && (temp = typeMalloc(wchar_t, 2 + count)) != 0) ++ && (temp = typeMalloc(wchar_t, 2 + count)) != NULL) + { + int n; + +@@ -296,7 +296,7 @@ + + assert(menu && menu->items); + +- if (menu->items != 0) ++ if (menu->items != NULL) + { + ITEM **items; + +Index: menu/m_item_new.c +Prereq: 1.39 +--- ncurses-6.5-20241130+/menu/m_item_new.c 2024-11-23 19:16:50.000000000 +0000 ++++ ncurses-6.5-20241207/menu/m_item_new.c 2024-12-07 22:01:57.000000000 +0000 +@@ -45,7 +45,7 @@ + #endif + #endif + +-MODULE_ID("$Id: m_item_new.c,v 1.39 2024/11/23 19:16:50 tom Exp $") ++MODULE_ID("$Id: m_item_new.c,v 1.40 2024/12/07 22:01:57 tom Exp $") + + /*--------------------------------------------------------------------------- + | Facility : libnmenu +@@ -63,13 +63,13 @@ + bool result = TRUE; + + #if USE_WIDEC_SUPPORT +- int count = (int)mbstowcs(0, s, 0); +- wchar_t *temp = 0; ++ int count = (int)mbstowcs(NULL, s, 0); ++ wchar_t *temp = NULL; + + assert(s); + + if (count > 0 +- && (temp = typeCalloc(wchar_t, (2 + (unsigned)count))) != 0) ++ && (temp = typeCalloc(wchar_t, (2 + (unsigned)count))) != NULL) + { + int n; + +@@ -231,7 +231,7 @@ + else + { + menu->mark = old_mark; +- menu->marklen = (short)((old_mark != 0) ? strlen(old_mark) : 0); ++ menu->marklen = (short)((old_mark != NULL) ? strlen(old_mark) : 0); + RETURN(E_SYSTEM_ERROR); + } + } +Index: menu/m_pattern.c +Prereq: 1.20 +--- ncurses-6.5-20241130+/menu/m_pattern.c 2021-06-17 21:20:30.000000000 +0000 ++++ ncurses-6.5-20241207/menu/m_pattern.c 2024-12-07 23:00:37.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020,2021 Thomas E. Dickey * ++ * Copyright 2020-2021,2024 Thomas E. Dickey * + * Copyright 1998-2006,2010 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -38,7 +38,7 @@ + + #include "menu.priv.h" + +-MODULE_ID("$Id: m_pattern.c,v 1.20 2021/06/17 21:20:30 tom Exp $") ++MODULE_ID("$Id: m_pattern.c,v 1.21 2024/12/07 23:00:37 tom Exp $") + + /*--------------------------------------------------------------------------- + | Facility : libnmenu +@@ -57,7 +57,7 @@ + static char empty[] = ""; + + T((T_CALLED("menu_pattern(%p)"), (const void *)menu)); +- returnPtr(menu ? (menu->pattern ? menu->pattern : empty) : 0); ++ returnPtr(menu ? (menu->pattern ? menu->pattern : empty) : NULL); + } + + /*--------------------------------------------------------------------------- +Index: menu/m_req_name.c +Prereq: 1.27 +--- ncurses-6.5-20241130+/menu/m_req_name.c 2021-06-17 21:11:08.000000000 +0000 ++++ ncurses-6.5-20241207/menu/m_req_name.c 2024-12-07 23:00:37.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020,2021 Thomas E. Dickey * ++ * Copyright 2020-2021,2024 Thomas E. Dickey * + * Copyright 1998-2012,2015 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -38,7 +38,7 @@ + + #include "menu.priv.h" + +-MODULE_ID("$Id: m_req_name.c,v 1.27 2021/06/17 21:11:08 tom Exp $") ++MODULE_ID("$Id: m_req_name.c,v 1.28 2024/12/07 23:00:37 tom Exp $") + + #define DATA(s) { s } + +@@ -106,7 +106,7 @@ + + T((T_CALLED("menu_request_by_name(%s)"), _nc_visbuf(str))); + +- if (str != 0 && (i = strlen(str)) != 0) ++ if (str != NULL && (i = strlen(str)) != 0) + { + char buf[16]; + +Index: menu/mf_common.h +Prereq: 0.26 +--- ncurses-6.5-20241130+/menu/mf_common.h 2024-11-30 21:41:20.000000000 +0000 ++++ ncurses-6.5-20241207/menu/mf_common.h 2024-12-07 22:01:18.000000000 +0000 +@@ -31,7 +31,7 @@ + * Author: Juergen Pfeifer, 1995,1997 * + ****************************************************************************/ + +-/* $Id: mf_common.h,v 0.26 2024/11/30 21:41:20 tom Exp $ */ ++/* $Id: mf_common.h,v 0.27 2024/12/07 22:01:18 tom Exp $ */ + + /* Common internal header for menu and form library */ + +@@ -88,7 +88,7 @@ + + /* Call object hook */ + #define Call_Hook( object, handler ) \ +- if ( (object) != 0 && ((object)->handler) != (void *) 0 )\ ++ if ( (object) != NULL && ((object)->handler) != (void *) 0 )\ + {\ + SetStatus(object, _IN_DRIVER);\ + (object)->handler(object);\ +Index: ncurses/base/MKkeyname.awk +Prereq: 1.51 +--- ncurses-6.5-20241130+/ncurses/base/MKkeyname.awk 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/MKkeyname.awk 2024-12-07 21:09:39.000000000 +0000 +@@ -1,6 +1,6 @@ +-# $Id: MKkeyname.awk,v 1.51 2020/02/02 23:34:34 tom Exp $ ++# $Id: MKkeyname.awk,v 1.53 2024/12/07 21:09:39 tom Exp $ + ############################################################################## +-# Copyright 2020 Thomas E. Dickey # ++# Copyright 2020,2024 Thomas E. Dickey # + # Copyright 1998-2016,2017 Free Software Foundation, Inc. # + # # + # Permission is hereby granted, free of charge, to any person obtaining a # +@@ -59,7 +59,7 @@ + if (bigstrings) { + printf "\t{ -1, 0 }};\n" + print "" +- print "static const char key_names[] = "names";" ++ print "static const char key_names[] ="names";" + } else { + printf "\t{ 0, 0 }};\n" + } +@@ -72,7 +72,7 @@ + print "safe_keyname (SCREEN *sp, int c)" + print "{" + print " char name[20];" +- print " NCURSES_CONST char *result = 0;" ++ print " NCURSES_CONST char *result = NULL;" + print "" + print " if (c == -1) {" + print " result = \"-1\";" +@@ -86,7 +86,7 @@ + print " }" + print " }" + } else { +- print " for (i = 0; _nc_key_names[i].name != 0; i++) {" ++ print " for (i = 0; _nc_key_names[i].name != NULL; i++) {" + print " if (_nc_key_names[i].code == c) {" + print " result = (NCURSES_CONST char *)_nc_key_names[i].name;" + print " break;" +@@ -94,12 +94,12 @@ + print " }" + } + print "" +- print " if (result == 0 && (c >= 0 && c < SIZEOF_TABLE)) {" +- print " if (MyTable == 0)" ++ print " if (result == NULL && (c >= 0 && c < SIZEOF_TABLE)) {" ++ print " if (MyTable == NULL)" + print " MyTable = typeCalloc(char *, SIZEOF_TABLE);" + print "" +- print " if (MyTable != 0) {" +- print " int m_prefix = (sp == 0 || sp->_use_meta);" ++ print " if (MyTable != NULL) {" ++ print " int m_prefix = (sp == NULL || sp->_use_meta);" + print "" + print " /* if sense of meta() changed, discard cached data */" + print " if (MyInit != (m_prefix + 1)) {" +@@ -112,7 +112,7 @@ + print " }" + print "" + print " /* create and cache result as needed */" +- print " if (MyTable[c] == 0) {" ++ print " if (MyTable[c] == NULL) {" + print " int cc = c;" + print " char *p = name;" + print "#define P_LIMIT (sizeof(name) - (size_t) (p - name))" +@@ -132,22 +132,22 @@ + print " result = MyTable[c];" + print " }" + print "#if NCURSES_EXT_FUNCS && NCURSES_XNAMES" +- print " } else if (result == 0 && HasTerminal(sp)) {" ++ print " } else if (result == NULL && HasTerminal(sp)) {" + print " int j, k;" + print " char * bound;" + print " TERMTYPE2 *tp = &TerminalType(TerminalOf(sp));" + print " unsigned save_trace = _nc_tracing;" + print "" + print " _nc_tracing = 0; /* prevent recursion via keybound() */" +- print " for (j = 0; (bound = NCURSES_SP_NAME(keybound)(NCURSES_SP_ARGx c, j)) != 0; ++j) {" ++ print " for (j = 0; (bound = NCURSES_SP_NAME(keybound)(NCURSES_SP_ARGx c, j)) != NULL; ++j) {" + print " for(k = STRCOUNT; k < (int) NUM_STRINGS(tp); k++) {" +- print " if (tp->Strings[k] != 0 && !strcmp(bound, tp->Strings[k])) {" ++ print " if (tp->Strings[k] != NULL && !strcmp(bound, tp->Strings[k])) {" + print " result = ExtStrname(tp, k, strnames);" + print " break;" + print " }" + print " }" + print " free(bound);" +- print " if (result != 0)" ++ print " if (result != NULL)" + print " break;" + print " }" + print " _nc_tracing = save_trace;" +@@ -166,7 +166,7 @@ + print "#if NO_LEAKS" + print "void _nc_keyname_leaks(void)" + print "{" +- print " if (MyTable != 0) {" ++ print " if (MyTable != NULL) {" + print " int j;" + print " for (j = 0; j < SIZEOF_TABLE; ++j) {" + print " FreeIfNeeded(MyTable[j]);" +Index: ncurses/base/MKlib_gen.sh +Prereq: 1.74 +--- ncurses-6.5-20241130+/ncurses/base/MKlib_gen.sh 2024-09-22 20:41:58.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/MKlib_gen.sh 2024-12-07 21:50:24.000000000 +0000 +@@ -2,7 +2,7 @@ + # + # MKlib_gen.sh -- generate sources from curses.h macro definitions + # +-# ($Id: MKlib_gen.sh,v 1.74 2024/09/22 20:41:58 tom Exp $) ++# ($Id: MKlib_gen.sh,v 1.75 2024/12/07 21:50:24 tom Exp $) + # + ############################################################################## + # Copyright 2018-2022,2024 Thomas E. Dickey # +@@ -188,6 +188,9 @@ + cat >$ED4 <<EOF + s/^\(.*\) \(.*\) (\(.*\))\$/NCURSES_EXPORT(\1) \2 (\3)/ + /attr_[sg]et.* z)/s,z),z GCC_UNUSED), ++ s/\(((\)0\([ ]*!=[ ]*(const void\)/\1NULL\2/g ++ /returnCode(wborder_set/s,0,NULL,g ++ /returnWin/s,0,NULL, + EOF + else + cat >$ED4 <<EOF +Index: ncurses/base/MKunctrl.awk +Prereq: 1.30 +--- ncurses-6.5-20241130+/ncurses/base/MKunctrl.awk 2024-02-03 21:09:14.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/MKunctrl.awk 2024-12-07 21:06:39.000000000 +0000 +@@ -1,4 +1,4 @@ +-# $Id: MKunctrl.awk,v 1.30 2024/02/03 21:09:14 tom Exp $ ++# $Id: MKunctrl.awk,v 1.31 2024/12/07 21:06:39 tom Exp $ + ############################################################################## + # Copyright 2020,2024 Thomas E. Dickey # + # Copyright 1998-2012,2017 Free Software Foundation, Inc. # +@@ -135,7 +135,7 @@ + + print "" + if (bigstrings) { +- print "static const char unctrl_blob[] = "blob";" ++ print "static const char unctrl_blob[] ="blob";" + print "" + stringname = "unctrl_blob + unctrl" + } else { +@@ -147,7 +147,7 @@ + print "\t(void) sp;" + print "\tif (check >= 0 && check < (int)SIZEOF(unctrl_table)) {" + print "#if NCURSES_EXT_FUNCS" +- print "\t\tif ((sp != 0)" ++ print "\t\tif ((sp != NULL)" + print "\t\t && (sp->_legacy_coding > 1)" + print "\t\t && (check >= 128)" + print "\t\t && (check < 160))" +@@ -156,7 +156,7 @@ + print "\t\tif ((check >= 160)" + print "\t\t && (check < 256)" + print "\t\t && !_nc_unicode_locale()" +- print "\t\t && ((sp != 0)" ++ print "\t\t && ((sp != NULL)" + print "\t\t && ((sp->_legacy_coding > 0)" + print "\t\t || (sp->_legacy_coding == 0" + print "\t\t && isprint(check)))))" +@@ -165,7 +165,7 @@ + print "#endif /* NCURSES_EXT_FUNCS */" + printf "\t\t\tresult = %s_table[check];\n", stringname; + print "\t} else {" +- print "\t\tresult = 0;" ++ print "\t\tresult = NULL;" + print "\t}" + print "\treturn (NCURSES_CONST char *)result;" + print "}" +Index: ncurses/base/define_key.c +Prereq: 1.22 +--- ncurses-6.5-20241130+/ncurses/base/define_key.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/define_key.c 2024-12-07 21:24:18.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 1998-2009,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -34,7 +34,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: define_key.c,v 1.22 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: define_key.c,v 1.23 2024/12/07 21:24:18 tom Exp $") + + NCURSES_EXPORT(int) + NCURSES_SP_NAME(define_key) (NCURSES_SP_DCLx const char *str, int keycode) +@@ -42,7 +42,7 @@ + int code = ERR; + + T((T_CALLED("define_key(%p, %s,%d)"), (void *) SP_PARM, _nc_visbuf(str), keycode)); +- if (SP_PARM == 0 || !HasTInfoTerminal(SP_PARM)) { ++ if (SP_PARM == NULL || !HasTInfoTerminal(SP_PARM)) { + code = ERR; + } else if (keycode > 0) { + unsigned ukey = (unsigned) keycode; +@@ -53,13 +53,13 @@ + #define CallHasKey(keycode) NCURSES_SP_NAME(has_key)(NCURSES_SP_ARGx keycode) + #endif + +- if (str != 0) { ++ if (str != NULL) { + NCURSES_SP_NAME(define_key) (NCURSES_SP_ARGx str, 0); + } else if (CallHasKey(keycode)) { + while (_nc_remove_key(&(SP_PARM->_keytry), ukey)) + code = OK; + } +- if (str != 0) { ++ if (str != NULL) { + if (NCURSES_SP_NAME(key_defined) (NCURSES_SP_ARGx str) == 0) { + if (_nc_add_to_try(&(SP_PARM->_keytry), str, ukey) == OK) { + code = OK; +Index: ncurses/base/key_defined.c +Prereq: 1.11 +--- ncurses-6.5-20241130+/ncurses/base/key_defined.c 2023-06-24 15:36:32.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/key_defined.c 2024-12-07 21:24:18.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020,2023 Thomas E. Dickey * ++ * Copyright 2020-2023,2024 Thomas E. Dickey * + * Copyright 2003-2006,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -34,7 +34,7 @@ + #include <curses.priv.h> + #include <tic.h> + +-MODULE_ID("$Id: key_defined.c,v 1.11 2023/06/24 15:36:32 tom Exp $") ++MODULE_ID("$Id: key_defined.c,v 1.12 2024/12/07 21:24:18 tom Exp $") + + static int + find_definition(TRIES * tree, const char *str) +@@ -43,9 +43,9 @@ + int result = OK; + + if (VALID_STRING(str) && *str != '\0') { +- for (ptr = tree; ptr != 0; ptr = ptr->sibling) { ++ for (ptr = tree; ptr != NULL; ptr = ptr->sibling) { + if (UChar(*str) == UChar(ptr->ch)) { +- if (str[1] == '\0' && ptr->child != 0) { ++ if (str[1] == '\0' && ptr->child != NULL) { + result = ERR; + } else if ((result = find_definition(ptr->child, str + 1)) + == OK) { +@@ -72,7 +72,7 @@ + int code = ERR; + + T((T_CALLED("key_defined(%p, %s)"), (void *) SP_PARM, _nc_visbuf(str))); +- if (SP_PARM != 0 && str != 0) { ++ if (SP_PARM != NULL && str != NULL) { + code = find_definition(SP_PARM->_keytry, str); + } + +Index: ncurses/base/keybound.c +Prereq: 1.12 +--- ncurses-6.5-20241130+/ncurses/base/keybound.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/keybound.c 2024-12-07 21:24:18.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 1999-2009,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -34,7 +34,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: keybound.c,v 1.12 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: keybound.c,v 1.13 2024/12/07 21:24:18 tom Exp $") + + /* + * Returns the count'th string definition which is associated with the +@@ -43,10 +43,10 @@ + NCURSES_EXPORT(char *) + NCURSES_SP_NAME(keybound) (NCURSES_SP_DCLx int code, int count) + { +- char *result = 0; ++ char *result = NULL; + + T((T_CALLED("keybound(%p, %d,%d)"), (void *) SP_PARM, code, count)); +- if (SP_PARM != 0 && code >= 0) { ++ if (SP_PARM != NULL && code >= 0) { + result = _nc_expand_try(SP_PARM->_keytry, + (unsigned) code, + &count, +Index: ncurses/base/keyok.c +Prereq: 1.17 +--- ncurses-6.5-20241130+/ncurses/base/keyok.c 2021-06-17 21:26:02.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/keyok.c 2024-12-07 21:24:18.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2019-2020,2021 Thomas E. Dickey * ++ * Copyright 2019-2021,2024 Thomas E. Dickey * + * Copyright 1998-2012,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -34,7 +34,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: keyok.c,v 1.17 2021/06/17 21:26:02 tom Exp $") ++MODULE_ID("$Id: keyok.c,v 1.18 2024/12/07 21:24:18 tom Exp $") + + /* + * Enable (or disable) ncurses' interpretation of a keycode by adding (or +@@ -63,7 +63,7 @@ + + if (flag) { + while ((s = _nc_expand_try(SP_PARM->_key_ok, +- ch, &count, (size_t) 0)) != 0) { ++ ch, &count, (size_t) 0)) != NULL) { + if (_nc_remove_key(&(SP_PARM->_key_ok), ch)) { + code = _nc_add_to_try(&(SP_PARM->_keytry), s, ch); + free(s); +@@ -76,7 +76,7 @@ + } + } else { + while ((s = _nc_expand_try(SP_PARM->_keytry, +- ch, &count, (size_t) 0)) != 0) { ++ ch, &count, (size_t) 0)) != NULL) { + if (_nc_remove_key(&(SP_PARM->_keytry), ch)) { + code = _nc_add_to_try(&(SP_PARM->_key_ok), s, ch); + free(s); +Index: ncurses/base/legacy_coding.c +Prereq: 1.6 +--- ncurses-6.5-20241130+/ncurses/base/legacy_coding.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/legacy_coding.c 2024-12-07 20:00:48.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 2005,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -34,7 +34,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: legacy_coding.c,v 1.6 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: legacy_coding.c,v 1.7 2024/12/07 20:00:48 tom Exp $") + + NCURSES_EXPORT(int) + NCURSES_SP_NAME(use_legacy_coding) (NCURSES_SP_DCLx int level) +@@ -42,7 +42,7 @@ + int result = ERR; + + T((T_CALLED("use_legacy_coding(%p,%d)"), (void *) SP_PARM, level)); +- if (level >= 0 && level <= 2 && SP_PARM != 0) { ++ if (level >= 0 && level <= 2 && SP_PARM != NULL) { + result = SP_PARM->_legacy_coding; + SP_PARM->_legacy_coding = level; + } +Index: ncurses/base/lib_addch.c +Prereq: 1.143 +--- ncurses-6.5-20241130+/ncurses/base/lib_addch.c 2024-11-30 21:18:07.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_addch.c 2024-12-07 17:18:07.000000000 +0000 +@@ -37,7 +37,7 @@ + #include <curses.priv.h> + #include <ctype.h> + +-MODULE_ID("$Id: lib_addch.c,v 1.143 2024/11/30 21:18:07 tom Exp $") ++MODULE_ID("$Id: lib_addch.c,v 1.144 2024/12/07 17:18:07 tom Exp $") + + static const NCURSES_CH_T blankchar = NewChar(BLANK_TEXT); + +@@ -451,14 +451,14 @@ + if ((AttrOf(ch) & A_ALTCHARSET) + || ( + #if USE_WIDEC_SUPPORT +- (sp != 0 && sp->_legacy_coding) && ++ (sp != NULL && sp->_legacy_coding) && + #endif + s[1] == 0 + ) + || ( + (isprint(UChar(t)) && !iscntrl(UChar(t))) + #if USE_WIDEC_SUPPORT +- || ((sp == 0 || !sp->_legacy_coding) && ++ || ((sp == NULL || !sp->_legacy_coding) && + (WINDOW_EXT(win, addch_used) + || !_nc_is_charable(CharOf(ch)))) + #endif +Index: ncurses/base/lib_addstr.c +Prereq: 1.62 +--- ncurses-6.5-20241130+/ncurses/base/lib_addstr.c 2023-11-21 21:47:23.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_addstr.c 2024-12-07 20:00:48.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2019-2022,2023 Thomas E. Dickey * ++ * Copyright 2019-2023,2024 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -45,7 +45,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_addstr.c,v 1.62 2023/11/21 21:47:23 tom Exp $") ++MODULE_ID("$Id: lib_addstr.c,v 1.63 2024/12/07 20:00:48 tom Exp $") + + NCURSES_EXPORT(int) + waddnstr(WINDOW *win, const char *astr, int n) +@@ -55,7 +55,7 @@ + + T((T_CALLED("waddnstr(%p,%s,%d)"), (void *) win, _nc_visbufn(astr, n), n)); + +- if (win && (str != 0) && (n != 0)) { ++ if (win && (str != NULL) && (n != 0)) { + bool explicit = (n > 0); + + TR(TRACE_VIRTPUT | TRACE_ATTRS, +@@ -123,7 +123,7 @@ + _nc_wchstrlen(const cchar_t *s) + { + int result = 0; +- if (s != 0) { ++ if (s != NULL) { + while (CharOf(s[result]) != L'\0') { + result++; + } +@@ -230,7 +230,7 @@ + + T((T_CALLED("waddnwstr(%p,%s,%d)"), (void *) win, _nc_viswbufn(str, n), n)); + +- if (win && (str != 0) && (n != 0)) { ++ if (win && (str != NULL) && (n != 0)) { + bool explicit = (n > 0); + + TR(TRACE_VIRTPUT | TRACE_ATTRS, +Index: ncurses/base/lib_beep.c +Prereq: 1.18 +--- ncurses-6.5-20241130+/ncurses/base/lib_beep.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_beep.c 2024-12-07 20:00:48.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 1998-2013,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -47,7 +47,7 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_beep.c,v 1.18 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: lib_beep.c,v 1.19 2024/12/07 20:00:48 tom Exp $") + + /* + * beep() +@@ -69,7 +69,7 @@ + res = CallDriver_1(SP_PARM, td_doBeepOrFlash, TRUE); + #else + /* FIXME: should make sure that we are not in altchar mode */ +- if (cur_term == 0) { ++ if (cur_term == NULL) { + res = ERR; + } else if (bell) { + res = NCURSES_PUTP2_FLUSH("bell", bell); +Index: ncurses/base/lib_bkgd.c +Prereq: 1.63 +--- ncurses-6.5-20241130+/ncurses/base/lib_bkgd.c 2021-05-08 14:58:12.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_bkgd.c 2024-12-07 20:00:48.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2018-2020,2021 Thomas E. Dickey * ++ * Copyright 2018-2021,2024 Thomas E. Dickey * + * Copyright 1998-2014,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -37,7 +37,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_bkgd.c,v 1.63 2021/05/08 14:58:12 tom Exp $") ++MODULE_ID("$Id: lib_bkgd.c,v 1.64 2024/12/07 20:00:48 tom Exp $") + + static const NCURSES_CH_T blank = NewChar(BLANK_TEXT); + +@@ -136,7 +136,7 @@ + #define TraceChar(c) _tracechar(CharOf(c)) + #endif + +- if (SP == 0) { ++ if (SP == NULL) { + ; + } else if (win) { + NCURSES_CH_T new_bkgd = CHDEREF(ch); +Index: ncurses/base/lib_color.c +Prereq: 1.152 +--- ncurses-6.5-20241130+/ncurses/base/lib_color.c 2024-11-23 18:27:25.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_color.c 2024-12-07 17:28:13.000000000 +0000 +@@ -49,7 +49,7 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_color.c,v 1.152 2024/11/23 18:27:25 tom Exp $") ++MODULE_ID("$Id: lib_color.c,v 1.153 2024/12/07 17:28:13 tom Exp $") + + #ifdef USE_TERM_DRIVER + #define CanChange InfoOf(SP_PARM).canchange +@@ -146,13 +146,13 @@ + static int + default_fg(NCURSES_SP_DCL0) + { +- return (SP_PARM != 0) ? SP_PARM->_default_fg : COLOR_WHITE; ++ return (SP_PARM != NULL) ? SP_PARM->_default_fg : COLOR_WHITE; + } + + static int + default_bg(NCURSES_SP_DCL0) + { +- return SP_PARM != 0 ? SP_PARM->_default_bg : COLOR_BLACK; ++ return SP_PARM != NULL ? SP_PARM->_default_bg : COLOR_BLACK; + } + #else + #define default_fg(sp) COLOR_WHITE +@@ -273,7 +273,7 @@ + result->bits.red = UChar(n); + result->bits.green = UChar(n); + result->bits.blue = UChar(n); +- } else if ((s = tigetstr(name)) != 0 && VALID_STRING(s)) { ++ } else if ((s = tigetstr(name)) != NULL && VALID_STRING(s)) { + int red = n; + int green = n; + int blue = width - (2 * n); +@@ -312,7 +312,7 @@ + bool result = FALSE; + + (void) SP_PARM; +- if (orig_pair != 0) { ++ if (orig_pair != NULL) { + (void) NCURSES_PUTP2("orig_pair", orig_pair); + result = TRUE; + } +@@ -339,7 +339,7 @@ + #ifdef USE_TERM_DRIVER + result = CallDriver(SP_PARM, td_rescolors); + #else +- if (orig_colors != 0) { ++ if (orig_colors != NULL) { + NCURSES_PUTP2("orig_colors", orig_colors); + result = TRUE; + } +@@ -362,7 +362,7 @@ + + T((T_CALLED("start_color(%p)"), (void *) SP_PARM)); + +- if (SP_PARM == 0) { ++ if (SP_PARM == NULL) { + result = ERR; + } else if (SP_PARM->_coloron) { + result = OK; +@@ -406,12 +406,12 @@ + #endif + + ReservePairs(SP_PARM, 16); +- if (SP_PARM->_color_pairs != 0) { ++ if (SP_PARM->_color_pairs != NULL) { + if (init_direct_colors(NCURSES_SP_ARG)) { + result = OK; + } else { + TYPE_CALLOC(color_t, maxcolors, SP_PARM->_color_table); +- if (SP_PARM->_color_table != 0) { ++ if (SP_PARM->_color_table != NULL) { + MakeColorPair(SP_PARM->_color_pairs[0], + default_fg(NCURSES_SP_ARG), + default_bg(NCURSES_SP_ARG)); +@@ -425,7 +425,7 @@ + COLORS, COLOR_PAIRS)); + + SP_PARM->_coloron = 1; +- } else if (SP_PARM->_color_pairs != 0) { ++ } else if (SP_PARM->_color_pairs != NULL) { + FreeAndNull(SP_PARM->_color_pairs); + } + } +@@ -526,13 +526,13 @@ + if (have > sp->_pair_limit) + have = sp->_pair_limit; + +- if (sp->_color_pairs == 0) { ++ if (sp->_color_pairs == NULL) { + TYPE_CALLOC(colorpair_t, have, sp->_color_pairs); + } else if (have > sp->_pair_alloc) { + #if NCURSES_EXT_COLORS && NCURSES_EXT_FUNCS + colorpair_t *next; + +- if ((next = typeCalloc(colorpair_t, have)) == 0) ++ if ((next = typeCalloc(colorpair_t, have)) == NULL) + _nc_err_abort(MSG_NO_MEMORY); + memcpy(next, sp->_color_pairs, (size_t) sp->_pair_alloc * sizeof(*next)); + _nc_copy_pairs(sp, next, sp->_color_pairs, sp->_pair_alloc); +@@ -546,7 +546,7 @@ + } + #endif + } +- if (sp->_color_pairs != 0) { ++ if (sp->_color_pairs != NULL) { + sp->_pair_alloc = have; + } + } +@@ -713,7 +713,7 @@ + color, + r, g, b)); + +- if (sp == 0 || sp->_direct_color.value) ++ if (sp == NULL || sp->_direct_color.value) + returnCode(result); + + maxcolors = MaxColors; +@@ -837,7 +837,7 @@ + (void *) g, + (void *) b)); + +- if (sp != 0) { ++ if (sp != NULL) { + int maxcolors = MaxColors; + + if (color >= 0 && OkColorHi(color) && sp->_coloron) { +@@ -1008,14 +1008,14 @@ + TIPARM_1(set_color_pair, pair), + 1, outc); + return; +- } else if (SP_PARM != 0) { ++ } else if (SP_PARM != NULL) { + if (_nc_pair_content(SP_PARM, pair, &fg, &bg) == ERR) + return; + } + } + + if (old_pair >= 0 +- && SP_PARM != 0 ++ && SP_PARM != NULL + && _nc_pair_content(SP_PARM, old_pair, &old_fg, &old_bg) != ERR) { + if ((isDefaultColor(fg) && !isDefaultColor(old_fg)) + || (isDefaultColor(bg) && !isDefaultColor(old_bg))) { +@@ -1115,11 +1115,11 @@ + NCURSES_EXPORT(void) + NCURSES_SP_NAME(reset_color_pairs) (NCURSES_SP_DCL0) + { +- if (SP_PARM != 0) { ++ if (SP_PARM != NULL) { + if (SP_PARM->_color_pairs) { + _nc_free_ordered_pairs(SP_PARM); + free(SP_PARM->_color_pairs); +- SP_PARM->_color_pairs = 0; ++ SP_PARM->_color_pairs = NULL; + SP_PARM->_pair_alloc = 0; + ReservePairs(SP_PARM, 16); + clearok(CurScreen(SP_PARM), TRUE); +Index: ncurses/base/lib_colorset.c +Prereq: 1.16 +--- ncurses-6.5-20241130+/ncurses/base/lib_colorset.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_colorset.c 2024-12-07 20:00:48.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 1998-2014,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -42,7 +42,7 @@ + #include <curses.priv.h> + #include <ctype.h> + +-MODULE_ID("$Id: lib_colorset.c,v 1.16 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: lib_colorset.c,v 1.17 2024/12/07 20:00:48 tom Exp $") + + NCURSES_EXPORT(int) + wcolor_set(WINDOW *win, NCURSES_PAIRS_T pair_arg, void *opts) +@@ -53,7 +53,7 @@ + T((T_CALLED("wcolor_set(%p,%d)"), (void *) win, color_pair)); + set_extended_pair(opts, color_pair); + if (win +- && (SP != 0) ++ && (SP != NULL) + && (color_pair >= 0) + && (color_pair < SP->_pair_limit)) { + TR(TRACE_ATTRS, ("... current %ld", (long) GET_WINDOW_PAIR(win))); +Index: ncurses/base/lib_delwin.c +Prereq: 1.28 +--- ncurses-6.5-20241130+/ncurses/base/lib_delwin.c 2024-07-27 18:57:35.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_delwin.c 2024-12-07 17:28:13.000000000 +0000 +@@ -43,7 +43,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_delwin.c,v 1.28 2024/07/27 18:57:35 tom Exp $") ++MODULE_ID("$Id: lib_delwin.c,v 1.29 2024/12/07 17:28:13 tom Exp $") + + static bool + cannot_delete(const WINDOW *win) +@@ -80,7 +80,7 @@ + T((T_CALLED("delwin(%p)"), (void *) win)); + + if (_nc_try_global(curses) == 0) { +- if (win == 0 ++ if (win == NULL + || cannot_delete(win)) { + result = ERR; + } else if (IS_PAD(win)) { +@@ -92,7 +92,7 @@ + #endif + if (IS_SUBWIN(win)) { + touchwin(win->_parent); +- } else if (CurScreen(SP_PARM) != 0) { ++ } else if (CurScreen(SP_PARM) != NULL) { + touchwin(CurScreen(SP_PARM)); + } + result = _nc_freewin(win); +Index: ncurses/base/lib_dft_fgbg.c +Prereq: 1.31 +--- ncurses-6.5-20241130+/ncurses/base/lib_dft_fgbg.c 2021-04-03 22:27:18.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_dft_fgbg.c 2024-12-07 20:00:48.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020,2021 Thomas E. Dickey * ++ * Copyright 2020-2021,2024 Thomas E. Dickey * + * Copyright 1998-2014,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -38,7 +38,7 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_dft_fgbg.c,v 1.31 2021/04/03 22:27:18 tom Exp $") ++MODULE_ID("$Id: lib_dft_fgbg.c,v 1.32 2024/12/07 20:00:48 tom Exp $") + + /* + * Modify the behavior of color-pair 0 so that the library doesn't assume that +@@ -69,7 +69,7 @@ + int code = ERR; + + T((T_CALLED("assume_default_colors(%p,%d,%d)"), (void *) SP_PARM, fg, bg)); +- if (SP_PARM != 0) { ++ if (SP_PARM != NULL) { + #ifdef USE_TERM_DRIVER + code = CallDriver_2(SP_PARM, td_defaultcolors, fg, bg); + #else +@@ -79,7 +79,7 @@ + SP_PARM->_has_sgr_39_49 = (tigetflag("AX") == TRUE); + SP_PARM->_default_fg = isDefaultColor(fg) ? COLOR_DEFAULT : fg; + SP_PARM->_default_bg = isDefaultColor(bg) ? COLOR_DEFAULT : bg; +- if (SP_PARM->_color_pairs != 0) { ++ if (SP_PARM->_color_pairs != NULL) { + bool save = SP_PARM->_default_color; + SP_PARM->_assumed_color = TRUE; + SP_PARM->_default_color = TRUE; +Index: ncurses/base/lib_echo.c +Prereq: 1.10 +--- ncurses-6.5-20241130+/ncurses/base/lib_echo.c 2023-04-29 18:57:12.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_echo.c 2024-12-07 20:00:48.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020,2023 Thomas E. Dickey * ++ * Copyright 2020-2023,2024 Thomas E. Dickey * + * Copyright 1998-2000,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -45,13 +45,13 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_echo.c,v 1.10 2023/04/29 18:57:12 tom Exp $") ++MODULE_ID("$Id: lib_echo.c,v 1.11 2024/12/07 20:00:48 tom Exp $") + + NCURSES_EXPORT(int) + NCURSES_SP_NAME(echo) (NCURSES_SP_DCL0) + { + T((T_CALLED("echo(%p)"), (void *) SP_PARM)); +- if (0 == SP_PARM) ++ if (NULL == SP_PARM) + returnCode(ERR); + IsEcho(SP_PARM) = TRUE; + returnCode(OK); +@@ -69,7 +69,7 @@ + NCURSES_SP_NAME(noecho) (NCURSES_SP_DCL0) + { + T((T_CALLED("noecho(%p)"), (void *) SP_PARM)); +- if (0 == SP_PARM) ++ if (NULL == SP_PARM) + returnCode(ERR); + IsEcho(SP_PARM) = FALSE; + returnCode(OK); +Index: ncurses/base/lib_erase.c +Prereq: 1.20 +--- ncurses-6.5-20241130+/ncurses/base/lib_erase.c 2022-09-03 21:40:27.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_erase.c 2024-12-07 20:00:48.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020,2022 Thomas E. Dickey * ++ * Copyright 2020-2022,2024 Thomas E. Dickey * + * Copyright 1998-2009,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -42,7 +42,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_erase.c,v 1.20 2022/09/03 21:40:27 tom Exp $") ++MODULE_ID("$Id: lib_erase.c,v 1.21 2024/12/07 20:00:48 tom Exp $") + + NCURSES_EXPORT(int) + werase(WINDOW *win) +@@ -71,7 +71,7 @@ + */ + if_WIDEC({ + if (isWidecExt(start[0])) { +- int x = (win->_parent != 0) ? (win->_begx) : 0; ++ int x = (win->_parent != NULL) ? (win->_begx) : 0; + while (x-- > 0) { + if (isWidecBase(start[-1])) { + --start; +Index: ncurses/base/lib_freeall.c +Prereq: 1.77 +--- ncurses-6.5-20241130+/ncurses/base/lib_freeall.c 2024-07-27 19:22:23.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_freeall.c 2024-12-07 18:00:11.000000000 +0000 +@@ -40,7 +40,7 @@ + extern int malloc_errfd; /* FIXME */ + #endif + +-MODULE_ID("$Id: lib_freeall.c,v 1.77 2024/07/27 19:22:23 tom Exp $") ++MODULE_ID("$Id: lib_freeall.c,v 1.78 2024/12/07 18:00:11 tom Exp $") + + /* + * Free all ncurses data. This is used for testing only (there's no practical +@@ -54,11 +54,11 @@ + T((T_CALLED("_nc_freeall()"))); + #if NO_LEAKS + _nc_globals.leak_checking = TRUE; +- if (SP_PARM != 0) { +- if (SP_PARM->_oldnum_list != 0) { ++ if (SP_PARM != NULL) { ++ if (SP_PARM->_oldnum_list != NULL) { + FreeAndNull(SP_PARM->_oldnum_list); + } +- if (SP_PARM->_panelHook.destroy != 0) { ++ if (SP_PARM->_panelHook.destroy != NULL) { + SP_PARM->_panelHook.destroy(SP_PARM->_panelHook.stdscr_pseudo_panel); + } + #if NCURSES_EXT_COLORS +@@ -66,10 +66,10 @@ + #endif + } + #endif +- if (SP_PARM != 0) { ++ if (SP_PARM != NULL) { + _nc_lock_global(curses); + +- while (WindowList(SP_PARM) != 0) { ++ while (WindowList(SP_PARM) != NULL) { + WINDOWLIST *p, *q; + bool deleted = FALSE; + +@@ -119,7 +119,7 @@ + _nc_unlock_global(curses); + } + +- (void) _nc_printf_string(0, empty_va); ++ (void) _nc_printf_string(NULL, empty_va); + #ifdef TRACE + (void) _nc_trace_buf(-1, (size_t) 0); + #endif +Index: ncurses/base/lib_getch.c +Prereq: 1.147 +--- ncurses-6.5-20241130+/ncurses/base/lib_getch.c 2024-08-31 15:54:49.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_getch.c 2024-12-07 17:40:33.000000000 +0000 +@@ -44,7 +44,7 @@ + #define NEED_KEY_EVENT + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_getch.c,v 1.147 2024/08/31 15:54:49 tom Exp $") ++MODULE_ID("$Id: lib_getch.c,v 1.148 2024/12/07 17:40:33 tom Exp $") + + #include <fifo_defs.h> + +@@ -414,7 +414,7 @@ + SCREEN *sp = _nc_screen_of(win); + int rc; + +- if (sp != 0) { ++ if (sp != NULL) { + #ifdef USE_PTHREADS + if (_nc_use_pthreads && sp != CURRENT_SCREEN) { + SCREEN *save_SP; +@@ -457,7 +457,7 @@ + *result = 0; + + sp = _nc_screen_of(win); +- if (win == 0 || sp == 0) { ++ if (win == NULL || sp == NULL) { + returnCode(ERR); + } + +Index: ncurses/base/lib_initscr.c +Prereq: 1.48 +--- ncurses-6.5-20241130+/ncurses/base/lib_initscr.c 2020-09-07 14:26:48.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_initscr.c 2024-12-07 20:00:48.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2019,2020 Thomas E. Dickey * ++ * Copyright 2019-2020,2024 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -46,7 +46,7 @@ + #include <sys/termio.h> /* needed for ISC */ + #endif + +-MODULE_ID("$Id: lib_initscr.c,v 1.48 2020/09/07 14:26:48 tom Exp $") ++MODULE_ID("$Id: lib_initscr.c,v 1.49 2024/12/07 20:00:48 tom Exp $") + + NCURSES_EXPORT(WINDOW *) + initscr(void) +@@ -90,7 +90,7 @@ + } + } + #endif +- if (newterm(name, stdout, stdin) == 0) { ++ if (newterm(name, stdout, stdin) == NULL) { + fprintf(stderr, "Error opening terminal: %s.\n", name); + ExitProgram(EXIT_FAILURE); + } +Index: ncurses/base/lib_insch.c +Prereq: 1.38 +--- ncurses-6.5-20241130+/ncurses/base/lib_insch.c 2024-07-27 19:23:21.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_insch.c 2024-12-07 17:40:33.000000000 +0000 +@@ -44,7 +44,7 @@ + #include <curses.priv.h> + #include <ctype.h> + +-MODULE_ID("$Id: lib_insch.c,v 1.38 2024/07/27 19:23:21 tom Exp $") ++MODULE_ID("$Id: lib_insch.c,v 1.39 2024/12/07 17:40:33 tom Exp $") + + /* + * Insert the given character, updating the current location to simplify +@@ -85,7 +85,7 @@ + #endif + (isprint(ch8) || + (ChAttrOf(ch) & A_ALTCHARSET) || +- (sp != 0 && sp->_legacy_coding && !iscntrl(ch8)))) { ++ (sp != NULL && sp->_legacy_coding && !iscntrl(ch8)))) { + if (win->_curx <= win->_maxx) { + struct ldat *line = &(win->_line[win->_cury]); + NCURSES_CH_T *end = &(line->text[win->_curx]); +@@ -151,7 +151,7 @@ + + T((T_CALLED("winsch(%p, %s)"), (void *) win, _tracechtype(c))); + +- if (win != 0) { ++ if (win != NULL) { + NCURSES_SIZE_T oy = win->_cury; + NCURSES_SIZE_T ox = win->_curx; + +Index: ncurses/base/lib_insnstr.c +Prereq: 1.10 +--- ncurses-6.5-20241130+/ncurses/base/lib_insnstr.c 2023-11-21 21:58:03.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_insnstr.c 2024-12-07 20:00:48.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2018-2022,2023 Thomas E. Dickey * ++ * Copyright 2018-2023,2024 Thomas E. Dickey * + * Copyright 2004-2009,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -41,7 +41,7 @@ + #include <curses.priv.h> + #include <ctype.h> + +-MODULE_ID("$Id: lib_insnstr.c,v 1.10 2023/11/21 21:58:03 tom Exp $") ++MODULE_ID("$Id: lib_insnstr.c,v 1.11 2024/12/07 20:00:48 tom Exp $") + + NCURSES_EXPORT(int) + winsnstr(WINDOW *win, const char *s, int n) +@@ -51,7 +51,7 @@ + + T((T_CALLED("winsnstr(%p,%s,%d)"), (void *) win, _nc_visbufn(s, n), n)); + +- if (win != 0 && str != 0 && n != 0) { ++ if (win != NULL && str != NULL && n != 0) { + SCREEN *sp = _nc_screen_of(win); + #if USE_WIDEC_SUPPORT + /* +@@ -64,7 +64,7 @@ + if (sp->_screen_unicode) { + size_t nn = (n > 0) ? (size_t) n : strlen(s); + wchar_t *buffer = typeMalloc(wchar_t, nn + 1); +- if (buffer != 0) { ++ if (buffer != NULL) { + mbstate_t state; + size_t n3; + init_mb(state); +Index: ncurses/base/lib_instr.c +Prereq: 1.27 +--- ncurses-6.5-20241130+/ncurses/base/lib_instr.c 2024-07-27 19:22:23.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_instr.c 2024-12-07 17:53:39.000000000 +0000 +@@ -42,7 +42,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_instr.c,v 1.27 2024/07/27 19:22:23 tom Exp $") ++MODULE_ID("$Id: lib_instr.c,v 1.28 2024/12/07 17:53:39 tom Exp $") + + NCURSES_EXPORT(int) + winnstr(WINDOW *win, char *str, int n) +@@ -72,17 +72,17 @@ + wchar_t *wch; + int n2; + +- n2 = getcchar(cell, 0, 0, 0, 0); ++ n2 = getcchar(cell, NULL, NULL, NULL, NULL); + if (n2 > 0 +- && (wch = typeCalloc(wchar_t, (unsigned) n2 + 1)) != 0) { ++ && (wch = typeCalloc(wchar_t, (unsigned) n2 + 1)) != NULL) { + bool done = FALSE; + +- if (getcchar(cell, wch, &attrs, &pair, 0) == OK) { ++ if (getcchar(cell, wch, &attrs, &pair, NULL) == OK) { + mbstate_t state; + size_t n3; + + init_mb(state); +- n3 = wcstombs(0, wch, (size_t) 0); ++ n3 = wcstombs(NULL, wch, (size_t) 0); + if (!isEILSEQ(n3) && (n3 != 0) && (n3 <= MB_LEN_MAX)) { + size_t need = n3 + 10 + (size_t) i; + int have = (int) n3 + i; +@@ -90,7 +90,7 @@ + /* check for loop-done as well as overflow */ + if (have > n || (int) need <= 0) { + done = TRUE; +- } else if ((tmp = typeCalloc(char, need)) == 0) { ++ } else if ((tmp = typeCalloc(char, need)) == NULL) { + done = TRUE; + } else { + size_t i3; +Index: ncurses/base/lib_mouse.c +Prereq: 1.202 +--- ncurses-6.5-20241130+/ncurses/base/lib_mouse.c 2024-11-23 19:06:20.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_mouse.c 2024-12-07 17:40:33.000000000 +0000 +@@ -85,7 +85,7 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_mouse.c,v 1.202 2024/11/23 19:06:20 tom Exp $") ++MODULE_ID("$Id: lib_mouse.c,v 1.203 2024/12/07 17:40:33 tom Exp $") + + #include <tic.h> + +@@ -391,7 +391,7 @@ + sp->_mouse_xtermcap = tigetstr("XM"); + if (VALID_STRING(sp->_mouse_xtermcap)) { + char *code = strstr(sp->_mouse_xtermcap, "[?"); +- if (code != 0) { ++ if (code != NULL) { + code += 2; + while ((*code >= '0') && (*code <= '9')) { + char *next = code; +@@ -761,7 +761,7 @@ + /* we know how to recognize mouse events under "xterm" */ + if (NonEmpty(key_mouse)) { + init_xterm_mouse(sp); +- } else if (strstr(SP_TERMTYPE term_names, "xterm") != 0) { ++ } else if (strstr(SP_TERMTYPE term_names, "xterm") != NULL) { + if (_nc_add_to_try(&(sp->_keytry), xterm_kmous, KEY_MOUSE) == OK) + init_xterm_mouse(sp); + } +@@ -778,7 +778,7 @@ + + T((T_CALLED("_nc_mouse_init(%p)"), (void *) sp)); + +- if (sp != 0) { ++ if (sp != NULL) { + if (!sp->_mouse_initialized) { + int i; + +@@ -1834,10 +1834,10 @@ + + T((T_CALLED("getmouse(%p,%p)"), (void *) SP_PARM, (void *) aevent)); + +- if ((aevent != 0) && +- (SP_PARM != 0) && ++ if ((aevent != NULL) && ++ (SP_PARM != NULL) && + (SP_PARM->_mouse_type != M_NONE) && +- (eventp = SP_PARM->_mouse_eventp) != 0) { ++ (eventp = SP_PARM->_mouse_eventp) != NULL) { + /* compute the current-event pointer */ + MEVENT *prev = PREV(eventp); + +@@ -1890,9 +1890,9 @@ + + T((T_CALLED("ungetmouse(%p,%p)"), (void *) SP_PARM, (void *) aevent)); + +- if (aevent != 0 && +- SP_PARM != 0 && +- (eventp = SP_PARM->_mouse_eventp) != 0) { ++ if (aevent != NULL && ++ SP_PARM != NULL && ++ (eventp = SP_PARM->_mouse_eventp) != NULL) { + + /* stick the given event in the next-free slot */ + *eventp = *aevent; +@@ -1926,7 +1926,7 @@ + (unsigned long) newmask, + (void *) oldmask)); + +- if (SP_PARM != 0) { ++ if (SP_PARM != NULL) { + if (oldmask) + *oldmask = SP_PARM->_mouse_mask; + +@@ -1988,7 +1988,7 @@ + + T((T_CALLED("wenclose(%p,%d,%d)"), (const void *) win, y, x)); + +- if (win != 0) { ++ if (win != NULL) { + y -= win->_yoffset; + if (IS_PAD(win)) { + if (win->_pad._pad_y >= 0 && +@@ -2020,7 +2020,7 @@ + + T((T_CALLED("mouseinterval(%p,%d)"), (void *) SP_PARM, maxclick)); + +- if (SP_PARM != 0) { ++ if (SP_PARM != NULL) { + oldval = SP_PARM->_maxclick; + if (maxclick >= 0) + SP_PARM->_maxclick = maxclick; +@@ -2044,7 +2044,7 @@ + NCURSES_EXPORT(bool) + _nc_has_mouse(const SCREEN *sp) + { +- return (((0 == sp) || (sp->_mouse_type == M_NONE)) ? FALSE : TRUE); ++ return (((NULL == sp) || (sp->_mouse_type == M_NONE)) ? FALSE : TRUE); + } + + NCURSES_EXPORT(bool) +Index: ncurses/base/lib_newterm.c +Prereq: 1.106 +--- ncurses-6.5-20241130+/ncurses/base/lib_newterm.c 2024-11-23 18:33:35.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_newterm.c 2024-12-07 17:41:36.000000000 +0000 +@@ -49,7 +49,7 @@ + + #include <tic.h> + +-MODULE_ID("$Id: lib_newterm.c,v 1.106 2024/11/23 18:33:35 tom Exp $") ++MODULE_ID("$Id: lib_newterm.c,v 1.107 2024/12/07 17:41:36 tom Exp $") + + #ifdef USE_TERM_DRIVER + #define NumLabels InfoOf(SP_PARM).numlabels +@@ -175,12 +175,12 @@ + FILE *ifp) + { + int errret; +- SCREEN *result = 0; ++ SCREEN *result = NULL; + SCREEN *current; + TERMINAL *its_term; + FILE *_ofp = ofp ? ofp : stdout; + FILE *_ifp = ifp ? ifp : stdin; +- TERMINAL *new_term = 0; ++ TERMINAL *new_term = NULL; + + START_TRACE(); + T((T_CALLED("newterm(%p, \"%s\", %p,%p)"), +@@ -191,7 +191,7 @@ + + #if NCURSES_SP_FUNCS + assert(SP_PARM != 0); +- if (SP_PARM == 0) ++ if (SP_PARM == NULL) + returnSP(SP_PARM); + #endif + +@@ -199,7 +199,7 @@ + _nc_lock_global(curses); + + current = CURRENT_SCREEN; +- its_term = (current ? current->_term : 0); ++ its_term = (current ? current->_term : NULL); + + #if defined(EXP_WIN32_DRIVER) + _setmode(fileno(_ifp), _O_BINARY); +@@ -214,7 +214,7 @@ + int slk_format; + bool filter_mode; + +- _nc_set_screen(0); ++ _nc_set_screen(NULL); + #ifdef USE_TERM_DRIVER + assert(new_term != 0); + #endif +@@ -241,7 +241,7 @@ + filter_mode, + slk_format) == ERR) { + _nc_set_screen(current); +- result = 0; ++ result = NULL; + } else { + int value; + int cols; +@@ -318,7 +318,7 @@ + + NCURSES_SP_NAME(baudrate) (NCURSES_SP_ARG); /* sets a field in the screen structure */ + +- SP_PARM->_keytry = 0; ++ SP_PARM->_keytry = NULL; + + /* compute movement costs so we can do better move optimization */ + #ifdef USE_TERM_DRIVER +@@ -333,7 +333,7 @@ + * properly if we remove rmso or rmul. Curses applications + * shouldn't be looking at this detail. + */ +-#define SGR0_TEST(mode) (mode != 0) && (exit_attribute_mode == 0 || strcmp(mode, exit_attribute_mode)) ++#define SGR0_TEST(mode) (mode != NULL) && (exit_attribute_mode == NULL || strcmp(mode, exit_attribute_mode)) + SP_PARM->_use_rmso = SGR0_TEST(exit_standout_mode); + SP_PARM->_use_rmul = SGR0_TEST(exit_underline_mode); + #if USE_ITALIC +Index: ncurses/base/lib_newwin.c +Prereq: 1.77 +--- ncurses-6.5-20241130+/ncurses/base/lib_newwin.c 2024-09-28 15:55:56.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_newwin.c 2024-12-07 20:19:18.000000000 +0000 +@@ -44,7 +44,7 @@ + #include <curses.priv.h> + #include <stddef.h> + +-MODULE_ID("$Id: lib_newwin.c,v 1.77 2024/09/28 15:55:56 tom Exp $") ++MODULE_ID("$Id: lib_newwin.c,v 1.78 2024/12/07 20:19:18 tom Exp $") + + #define window_is(name) ((sp)->_##name == win) + +@@ -53,9 +53,9 @@ + sp->_##name = 0 + #else + #define remove_window(name) \ +- sp->_##name = 0; \ ++ sp->_##name = NULL; \ + if (win == name) \ +- name = 0 ++ name = NULL + #endif + + static void +@@ -64,7 +64,7 @@ + SCREEN *sp; + + #ifdef USE_SP_WINDOWLIST +- if ((sp = _nc_screen_of(win)) != 0) { ++ if ((sp = _nc_screen_of(win)) != NULL) { + if (window_is(curscr)) { + remove_window(curscr); + } else if (window_is(stdscr)) { +@@ -99,17 +99,17 @@ + + T((T_CALLED("_nc_freewin(%p)"), (void *) win)); + +- if (win != 0) { ++ if (win != NULL) { + + if (_nc_nonsp_try_global(curses) == 0) { + WINDOWLIST *p, *q; + +- q = 0; ++ q = NULL; + for (each_window(sp, p)) { + + if (&(p->win) == win) { + remove_window_from_screen(win); +- if (q == 0) ++ if (q == NULL) + WindowList(sp) = p->next; + else + q->next = p->next; +@@ -150,8 +150,8 @@ + || begx < 0 + || num_lines < 0 + || num_columns < 0 +- || SP_PARM == 0) +- returnWin(0); ++ || SP_PARM == NULL) ++ returnWin(NULL); + + if (num_lines == 0) + num_lines = SP_PARM->_lines_avail - begy; +@@ -160,14 +160,14 @@ + + win = NCURSES_SP_NAME(_nc_makenew) (NCURSES_SP_ARGx + num_lines, num_columns, begy, begx, 0); +- if (win == 0) +- returnWin(0); ++ if (win == NULL) ++ returnWin(NULL); + + for (i = 0; i < num_lines; i++) { + win->_line[i].text = typeCalloc(NCURSES_CH_T, (unsigned) num_columns); +- if (win->_line[i].text == 0) { ++ if (win->_line[i].text == NULL) { + (void) _nc_freewin(win); +- returnWin(0); ++ returnWin(NULL); + } + for (ptr = win->_line[i].text; + ptr < win->_line[i].text + num_columns; +@@ -207,11 +207,14 @@ + /* + * make sure window fits inside the original one + */ +- if (begy < 0 || begx < 0 || orig == 0 || num_lines < 0 || num_columns < 0) +- returnWin(0); +- if (begy + num_lines > orig->_maxy + 1 ++ if (begy < 0 ++ || begx < 0 ++ || orig == NULL ++ || num_lines < 0 ++ || num_columns < 0 ++ || begy + num_lines > orig->_maxy + 1 + || begx + num_columns > orig->_maxx + 1) +- returnWin(0); ++ returnWin(NULL); + + if (num_lines == 0) + num_lines = orig->_maxy + 1 - begy; +@@ -225,8 +228,8 @@ + win = NCURSES_SP_NAME(_nc_makenew) (NCURSES_SP_ARGx num_lines, num_columns, + orig->_begy + begy, + orig->_begx + begx, flags); +- if (win == 0) +- returnWin(0); ++ if (win == NULL) ++ returnWin(NULL); + + win->_pary = begy; + win->_parx = begx; +@@ -244,10 +247,10 @@ + NCURSES_EXPORT(WINDOW *) + subwin(WINDOW *w, int l, int c, int y, int x) + { +- WINDOW *result = 0; ++ WINDOW *result = NULL; + + T((T_CALLED("subwin(%p, %d, %d, %d, %d)"), (void *) w, l, c, y, x)); +- if (w != 0) { ++ if (w != NULL) { + T(("parent has begy = %ld, begx = %ld", (long) w->_begy, (long) w->_begx)); + + result = derwin(w, l, c, y - w->_begy, x - w->_begx); +@@ -271,20 +274,20 @@ + T((T_CALLED("_nc_makenew(%p,%d,%d,%d,%d)"), + (void *) SP_PARM, num_lines, num_columns, begy, begx)); + +- if (SP_PARM == 0) +- returnWin(0); ++ if (SP_PARM == NULL) ++ returnWin(NULL); + + if (!OK_DIMENSION(num_lines) || !OK_DIMENSION(num_columns)) +- returnWin(0); ++ returnWin(NULL); + +- if ((wp = typeCalloc(WINDOWLIST, 1)) == 0) +- returnWin(0); ++ if ((wp = typeCalloc(WINDOWLIST, 1)) == NULL) ++ returnWin(NULL); + + win = &(wp->win); + +- if ((win->_line = typeCalloc(struct ldat, ((unsigned) num_lines))) == 0) { ++ if ((win->_line = typeCalloc(struct ldat, ((unsigned) num_lines))) == NULL) { + free(wp); +- returnWin(0); ++ returnWin(NULL); + } + + _nc_nonsp_lock_global(curses); +@@ -315,7 +318,7 @@ + win->_sync = 0; + win->_parx = -1; + win->_pary = -1; +- win->_parent = 0; ++ win->_parent = NULL; + + win->_regtop = 0; + win->_regbottom = (NCURSES_SIZE_T) (num_lines - 1); +@@ -382,18 +385,18 @@ + NCURSES_EXPORT(WINDOW *) + _nc_curscr_of(SCREEN *sp) + { +- return (sp == 0) ? NULL : CurScreen(sp); ++ return (sp == NULL) ? NULL : CurScreen(sp); + } + + NCURSES_EXPORT(WINDOW *) + _nc_newscr_of(SCREEN *sp) + { +- return (sp == 0) ? NULL : NewScreen(sp); ++ return (sp == NULL) ? NULL : NewScreen(sp); + } + + NCURSES_EXPORT(WINDOW *) + _nc_stdscr_of(SCREEN *sp) + { +- return (sp == 0) ? NULL : StdScreen(sp); ++ return (sp == NULL) ? NULL : StdScreen(sp); + } + #endif +Index: ncurses/base/lib_nl.c +Prereq: 1.14 +--- ncurses-6.5-20241130+/ncurses/base/lib_nl.c 2023-04-29 18:51:49.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_nl.c 2024-12-07 20:00:48.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020,2023 Thomas E. Dickey * ++ * Copyright 2020-2023,2024 Thomas E. Dickey * + * Copyright 1998-2000,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -45,7 +45,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_nl.c,v 1.14 2023/04/29 18:51:49 tom Exp $") ++MODULE_ID("$Id: lib_nl.c,v 1.15 2024/12/07 20:00:48 tom Exp $") + + #ifdef __EMX__ + #include <io.h> +@@ -55,7 +55,7 @@ + NCURSES_SP_NAME(nl) (NCURSES_SP_DCL0) + { + T((T_CALLED("nl(%p)"), (void *) SP_PARM)); +- if (0 == SP_PARM) ++ if (NULL == SP_PARM) + returnCode(ERR); + IsNl(SP_PARM) = TRUE; + #ifdef __EMX__ +@@ -77,7 +77,7 @@ + NCURSES_SP_NAME(nonl) (NCURSES_SP_DCL0) + { + T((T_CALLED("nonl(%p)"), (void *) SP_PARM)); +- if (0 == SP_PARM) ++ if (NULL == SP_PARM) + returnCode(ERR); + IsNl(SP_PARM) = FALSE; + #ifdef __EMX__ +Index: ncurses/base/lib_overlay.c +Prereq: 1.34 +--- ncurses-6.5-20241130+/ncurses/base/lib_overlay.c 2023-09-16 16:39:07.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_overlay.c 2024-12-07 20:03:37.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020,2023 Thomas E. Dickey * ++ * Copyright 2020-2023,2024 Thomas E. Dickey * + * Copyright 1998-2013,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -41,7 +41,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_overlay.c,v 1.34 2023/09/16 16:39:07 tom Exp $") ++MODULE_ID("$Id: lib_overlay.c,v 1.35 2024/12/07 20:03:37 tom Exp $") + + static int + overlap(const WINDOW *const src, WINDOW *const dst, int const flag) +@@ -50,7 +50,7 @@ + + T((T_CALLED("overlap(%p,%p,%d)"), (const void *) src, (void *) dst, flag)); + +- if (src != 0 && dst != 0) { ++ if (src != NULL && dst != NULL) { + int sx1, sy1, sx2, sy2; + int dx1, dy1, dx2, dy2; + +@@ -146,8 +146,8 @@ + dminrow, dmincol, + dmaxrow, dmaxcol, over)); + +- if (src != 0 +- && dst != 0 ++ if (src != NULL ++ && dst != NULL + && dmaxrow >= dminrow + && dmaxcol >= dmincol) { + attr_t bk; +Index: ncurses/base/lib_pad.c +Prereq: 1.51 +--- ncurses-6.5-20241130+/ncurses/base/lib_pad.c 2024-09-28 15:40:42.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_pad.c 2024-12-07 17:44:59.000000000 +0000 +@@ -43,7 +43,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_pad.c,v 1.51 2024/09/28 15:40:42 tom Exp $") ++MODULE_ID("$Id: lib_pad.c,v 1.52 2024/12/07 17:44:59 tom Exp $") + + NCURSES_EXPORT(WINDOW *) + NCURSES_SP_NAME(newpad) (NCURSES_SP_DCLx int l, int c) +@@ -55,17 +55,17 @@ + T((T_CALLED("newpad(%p,%d, %d)"), (void *) SP_PARM, l, c)); + + if (l <= 0 || c <= 0) +- returnWin(0); ++ returnWin(NULL); + + win = NCURSES_SP_NAME(_nc_makenew) (NCURSES_SP_ARGx l, c, 0, 0, _ISPAD); + if (win == NULL) +- returnWin(0); ++ returnWin(NULL); + + for (i = 0; i < l; i++) { + if_USE_SCROLL_HINTS(win->_line[i].oldindex = _NEWINDEX); +- if ((win->_line[i].text = typeCalloc(NCURSES_CH_T, ((size_t) c))) == 0) { ++ if ((win->_line[i].text = typeCalloc(NCURSES_CH_T, ((size_t) c))) == NULL) { + (void) _nc_freewin(win); +- returnWin(0); ++ returnWin(NULL); + } + for (ptr = win->_line[i].text; ptr < win->_line[i].text + c; ptr++) + SetChar(*ptr, BLANK_TEXT, BLANK_ATTR); +@@ -92,7 +92,7 @@ + if (orig) { + if (!IS_PAD(orig) + || ((win = derwin(orig, l, c, begy, begx)) == NULL)) +- returnWin(0); ++ returnWin(NULL); + } + returnWin(win); + } +@@ -143,7 +143,7 @@ + T((T_CALLED("pnoutrefresh(%p, %d, %d, %d, %d, %d, %d)"), + (void *) win, pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol)); + +- if (win == 0) ++ if (win == NULL) + returnCode(ERR); + + if (!IS_PAD(win)) +@@ -331,7 +331,7 @@ + { + T((T_CALLED("pechochar(%p, %s)"), (void *) pad, _tracechtype(ch))); + +- if (pad == 0) ++ if (pad == NULL) + returnCode(ERR); + + if (!IS_PAD(pad)) +Index: ncurses/base/lib_printw.c +Prereq: 1.29 +--- ncurses-6.5-20241130+/ncurses/base/lib_printw.c 2024-07-27 19:22:23.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_printw.c 2024-12-07 17:44:59.000000000 +0000 +@@ -40,7 +40,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_printw.c,v 1.29 2024/07/27 19:22:23 tom Exp $") ++MODULE_ID("$Id: lib_printw.c,v 1.30 2024/12/07 17:44:59 tom Exp $") + + NCURSES_EXPORT(int) + printw(const char *fmt, ...) +@@ -142,7 +142,7 @@ + T((T_CALLED("vwprintw(%p,%s,va_list)"), (void *) win, _nc_visbuf(fmt))); + + buf = NCURSES_SP_NAME(_nc_printf_string) (NCURSES_SP_ARGx fmt, argp); +- if (buf != 0) { ++ if (buf != NULL) { + code = waddstr(win, buf); + } + returnCode(code); +@@ -160,7 +160,7 @@ + T((T_CALLED("vw_printw(%p,%s,va_list)"), (void *) win, _nc_visbuf(fmt))); + + buf = NCURSES_SP_NAME(_nc_printf_string) (NCURSES_SP_ARGx fmt, argp); +- if (buf != 0) { ++ if (buf != NULL) { + code = waddstr(win, buf); + } + returnCode(code); +Index: ncurses/base/lib_redrawln.c +Prereq: 1.18 +--- ncurses-6.5-20241130+/ncurses/base/lib_redrawln.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_redrawln.c 2024-12-07 20:03:37.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 1998-2009,2010 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -40,7 +40,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_redrawln.c,v 1.18 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: lib_redrawln.c,v 1.19 2024/12/07 20:03:37 tom Exp $") + + NCURSES_EXPORT(int) + wredrawln(WINDOW *win, int beg, int num) +@@ -52,7 +52,7 @@ + + T((T_CALLED("wredrawln(%p,%d,%d)"), (void *) win, beg, num)); + +- if (win == 0) ++ if (win == NULL) + returnCode(ERR); + + sp = _nc_screen_of(win); +Index: ncurses/base/lib_restart.c +Prereq: 1.18 +--- ncurses-6.5-20241130+/ncurses/base/lib_restart.c 2023-04-29 19:01:25.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_restart.c 2024-12-07 20:03:37.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020,2023 Thomas E. Dickey * ++ * Copyright 2020-2023,2024 Thomas E. Dickey * + * Copyright 1998-2012,2015 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -42,7 +42,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_restart.c,v 1.18 2023/04/29 19:01:25 tom Exp $") ++MODULE_ID("$Id: lib_restart.c,v 1.19 2024/12/07 20:03:37 tom Exp $") + + NCURSES_EXPORT(int) + NCURSES_SP_NAME(restartterm) (NCURSES_SP_DCLx +@@ -64,7 +64,7 @@ + + if (TINFO_SETUP_TERM(&new_term, termp, filenum, errret, FALSE) != OK) { + result = ERR; +- } else if (SP_PARM != 0) { ++ } else if (SP_PARM != NULL) { + TTY_FLAGS save_flags = SP_PARM->_tty_flags; + + #ifdef USE_TERM_DRIVER +Index: ncurses/base/lib_screen.c +Prereq: 1.109 +--- ncurses-6.5-20241130+/ncurses/base/lib_screen.c 2024-10-05 20:47:44.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_screen.c 2024-12-07 17:46:49.000000000 +0000 +@@ -42,7 +42,7 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_screen.c,v 1.109 2024/10/05 20:47:44 tom Exp $") ++MODULE_ID("$Id: lib_screen.c,v 1.110 2024/12/07 17:46:49 tom Exp $") + + #define MAX_SIZE 0x3fff /* 16k is big enough for a window or pad */ + +@@ -172,7 +172,7 @@ + char *result = malloc(limit); + char *buffer; + +- if (result != 0) { ++ if (result != NULL) { + int ch = 0; + size_t used = 0; + +@@ -182,9 +182,9 @@ + if (used + 2 >= limit) { + limit += 1024; + buffer = realloc(result, limit); +- if (buffer == 0) { ++ if (buffer == NULL) { + free(result); +- result = 0; ++ result = NULL; + break; + } + result = buffer; +@@ -201,7 +201,7 @@ + TR(TRACE_IEVENT, ("READ:%s", result)); + } else if (used == 0) { + free(result); +- result = 0; ++ result = NULL; + } + } + return result; +@@ -306,7 +306,7 @@ + *target = 0; + while (limit-- > 0) { + const char *find = strchr(digits, *source++); +- int ch = (find != 0) ? (int) (find - digits) : -1; ++ int ch = (find != NULL) ? (int) (find - digits) : -1; + *target *= base; + if (ch >= 0 && ch < base) { + *target += ch; +@@ -387,14 +387,14 @@ + char *value; + char *txt = read_txt(fp); + +- if (txt == 0) ++ if (txt == NULL) + break; + if (!strcmp(txt, "rows:")) { + free(txt); + code = OK; + break; + } +- if ((value = strchr(txt, '=')) == 0) { ++ if ((value = strchr(txt, '=')) == NULL) { + free(txt); + continue; + } +@@ -506,8 +506,8 @@ + + T((T_CALLED("getwin(%p)"), (void *) filep)); + +- if (filep == 0) { +- returnWin(0); ++ if (filep == NULL) { ++ returnWin(NULL); + } + + /* +@@ -515,7 +515,7 @@ + * screen-dump, or new-format. + */ + if (read_block(&tmp, (size_t) 4, filep) < 0) { +- returnWin(0); ++ returnWin(NULL); + } + /* + * If this is a new-format file, and we do not support it, give up. +@@ -524,9 +524,9 @@ + #if NCURSES_EXT_PUTWIN + if (read_win(&tmp, filep) < 0) + #endif +- returnWin(0); ++ returnWin(NULL); + } else if (read_block(((char *) &tmp) + 4, sizeof(WINDOW) - 4, filep) < 0) { +- returnWin(0); ++ returnWin(NULL); + } else { + old_format = TRUE; + } +@@ -538,7 +538,7 @@ + tmp._maxy > MAX_SIZE || + tmp._maxx == 0 || + tmp._maxx > MAX_SIZE) { +- returnWin(0); ++ returnWin(NULL); + } + + if (IS_PAD(&tmp)) { +@@ -556,7 +556,7 @@ + * fields, because the window hierarchy within which they + * made sense is probably gone. + */ +- if (nwin != 0) { ++ if (nwin != NULL) { + int n; + size_t linesize = sizeof(NCURSES_CH_T) * (size_t) (tmp._maxx + 1); + +@@ -594,13 +594,13 @@ + for (n = 0; n <= nwin->_maxy; n++) { + if (read_block(nwin->_line[n].text, linesize, filep) < 0) { + delwin(nwin); +- returnWin(0); ++ returnWin(NULL); + } + } + } + #if NCURSES_EXT_PUTWIN + else { +- char *txt = 0; ++ char *txt = NULL; + bool success = TRUE; + NCURSES_CH_T prior = blank; + +@@ -609,7 +609,7 @@ + long row; + char *next; + +- if ((txt = read_txt(filep)) == 0) { ++ if ((txt = read_txt(filep)) == NULL) { + T(("...failed to read string for row %d", n + 1)); + success = FALSE; + break; +@@ -628,13 +628,13 @@ + break; + } + free(txt); +- txt = 0; ++ txt = NULL; + } + + if (!success) { + free(txt); + delwin(nwin); +- returnWin(0); ++ returnWin(NULL); + } + } + #endif +@@ -798,7 +798,7 @@ + T((T_CALLED("putwin(%p,%p)"), (void *) win, (void *) filep)); + + #if NCURSES_EXT_PUTWIN +- if (win != 0) { ++ if (win != NULL) { + const char *version = curses_version(); + char buffer[1024]; + NCURSES_CH_T last_cell; +@@ -966,14 +966,14 @@ + NCURSES_EXPORT(int) + NCURSES_SP_NAME(scr_restore) (NCURSES_SP_DCLx const char *file) + { +- FILE *fp = 0; ++ FILE *fp = NULL; + int code = ERR; + + T((T_CALLED("scr_restore(%p,%s)"), (void *) SP_PARM, _nc_visbuf(file))); + + if (SP_PARM != NULL + && _nc_access(file, R_OK) >= 0 +- && (fp = safe_fopen(file, BIN_R)) != 0) { ++ && (fp = safe_fopen(file, BIN_R)) != NULL) { + WINDOW *my_newscr = replace_window(NewScreen(SP_PARM), fp); + (void) fclose(fp); + if (my_newscr != NULL) { +@@ -1000,12 +1000,12 @@ + scr_dump(const char *file) + { + int result; +- FILE *fp = 0; ++ FILE *fp = NULL; + + T((T_CALLED("scr_dump(%s)"), _nc_visbuf(file))); + + if (_nc_access(file, W_OK) < 0 +- || (fp = safe_fopen(file, BIN_W)) == 0) { ++ || (fp = safe_fopen(file, BIN_W)) == NULL) { + result = ERR; + } else { + (void) putwin(newscr, fp); +@@ -1029,10 +1029,10 @@ + !(exit_ca_mode && non_rev_rmcup) + #endif + ) { +- FILE *fp = 0; ++ FILE *fp = NULL; + + if (_nc_access(file, R_OK) >= 0 +- && (fp = safe_fopen(file, BIN_R)) != 0) { ++ && (fp = safe_fopen(file, BIN_R)) != NULL) { + WINDOW *my_curscr = replace_window(CurScreen(SP_PARM), fp); + (void) fclose(fp); + if (my_curscr != NULL) { +@@ -1070,7 +1070,7 @@ + #if !USE_REENTRANT + newscr = NewScreen(SP_PARM); + #endif +- if (NewScreen(SP_PARM) != 0) { ++ if (NewScreen(SP_PARM) != NULL) { + code = OK; + } + } +Index: ncurses/base/lib_set_term.c +Prereq: 1.189 +--- ncurses-6.5-20241130+/ncurses/base/lib_set_term.c 2024-11-23 18:33:50.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_set_term.c 2024-12-07 17:58:16.000000000 +0000 +@@ -57,7 +57,7 @@ + #undef CUR + #define CUR SP_TERMTYPE + +-MODULE_ID("$Id: lib_set_term.c,v 1.189 2024/11/23 18:33:50 tom Exp $") ++MODULE_ID("$Id: lib_set_term.c,v 1.190 2024/12/07 17:58:16 tom Exp $") + + #ifdef USE_TERM_DRIVER + #define MaxColors InfoOf(sp).maxcolors +@@ -81,7 +81,7 @@ + _nc_set_screen(screenp); + newSP = screenp; + +- if (newSP != 0) { ++ if (newSP != NULL) { + TINFO_SET_CURTERM(newSP, newSP->_term); + #if !USE_REENTRANT + curscr = CurScreen(newSP); +@@ -91,11 +91,11 @@ + COLOR_PAIRS = newSP->_pair_count; + #endif + } else { +- TINFO_SET_CURTERM(oldSP, 0); ++ TINFO_SET_CURTERM(oldSP, NULL); + #if !USE_REENTRANT +- curscr = 0; +- newscr = 0; +- stdscr = 0; ++ curscr = NULL; ++ newscr = NULL; ++ stdscr = NULL; + COLORS = 0; + COLOR_PAIRS = 0; + #endif +@@ -110,7 +110,7 @@ + static void + _nc_free_keytry(TRIES * kt) + { +- if (kt != 0) { ++ if (kt != NULL) { + _nc_free_keytry(kt->child); + _nc_free_keytry(kt->sibling); + free(kt); +@@ -120,7 +120,7 @@ + static bool + delink_screen(SCREEN *sp) + { +- SCREEN *last = 0; ++ SCREEN *last = NULL; + SCREEN *temp; + bool result = FALSE; + +@@ -174,9 +174,9 @@ + } + } + +- if (sp->_slk != 0) { ++ if (sp->_slk != NULL) { + +- if (sp->_slk->ent != 0) { ++ if (sp->_slk->ent != NULL) { + int i; + + for (i = 0; i < sp->_slk->labcnt; ++i) { +@@ -186,14 +186,14 @@ + free(sp->_slk->ent); + } + free(sp->_slk); +- sp->_slk = 0; ++ sp->_slk = NULL; + } + + _nc_free_keytry(sp->_keytry); +- sp->_keytry = 0; ++ sp->_keytry = NULL; + + _nc_free_keytry(sp->_key_ok); +- sp->_key_ok = 0; ++ sp->_key_ok = NULL; + + FreeIfNeeded(sp->_current_attr); + +@@ -232,17 +232,17 @@ + */ + if (is_current) { + #if !USE_REENTRANT +- curscr = 0; +- newscr = 0; +- stdscr = 0; ++ curscr = NULL; ++ newscr = NULL; ++ stdscr = NULL; + COLORS = 0; + COLOR_PAIRS = 0; + #endif +- _nc_set_screen(0); ++ _nc_set_screen(NULL); + #if USE_WIDEC_SUPPORT +- if (SP == 0) { ++ if (SP == NULL) { + FreeIfNeeded(_nc_wacs); +- _nc_wacs = 0; ++ _nc_wacs = NULL; + } + #endif + } else { +@@ -303,7 +303,7 @@ + } + #endif + +-#define ReturnScreenError() do { _nc_set_screen(0); \ ++#define ReturnScreenError() do { _nc_set_screen(NULL); \ + returnCode(ERR); } while (0) + + /* OS-independent screen initializations */ +@@ -357,7 +357,7 @@ + sp->_next_screen = _nc_screen_chain; + _nc_screen_chain = sp; + +- if ((sp->_current_attr = typeCalloc(NCURSES_CH_T, 1)) == 0) { ++ if ((sp->_current_attr = typeCalloc(NCURSES_CH_T, 1)) == NULL) { + ReturnScreenError(); + } + #else +@@ -437,7 +437,7 @@ + _setmode(fileno(output), _O_BINARY); + #endif + sp->out_limit = (size_t) ((2 + slines) * (6 + scolumns)); +- if ((sp->out_buffer = malloc(sp->out_limit)) == 0) ++ if ((sp->out_buffer = malloc(sp->out_limit)) == NULL) + sp->out_limit = 0; + sp->out_inuse = 0; + +@@ -479,7 +479,7 @@ + * Allow those assumed/default color assumptions to be overridden at + * runtime: + */ +- if ((env = getenv("NCURSES_ASSUMED_COLORS")) != 0) { ++ if ((env = getenv("NCURSES_ASSUMED_COLORS")) != NULL) { + int fg, bg; + char sep1, sep2; + int count = sscanf(env, "%d%c%d%c", &fg, &sep1, &bg, &sep2); +@@ -555,7 +555,7 @@ + * in the environment, reset the support-flag. + */ + if (magic_cookie_glitch >= 0) { +- if (getenv("NCURSES_NO_MAGIC_COOKIE") != 0) { ++ if (getenv("NCURSES_NO_MAGIC_COOKIE") != NULL) { + support_cookies = FALSE; + } + } +@@ -633,10 +633,10 @@ + NCURSES_SP_NAME(_nc_init_acs) (NCURSES_SP_ARG); + #if USE_WIDEC_SUPPORT + sp->_screen_unicode = _nc_unicode_locale(); +- if (_nc_wacs == 0) { ++ if (_nc_wacs == NULL) { + _nc_init_wacs(); + } +- if (_nc_wacs == 0) { ++ if (_nc_wacs == NULL) { + ReturnScreenError(); + } + +@@ -644,7 +644,7 @@ + && _nc_locale_breaks_acs(sp->_term)); + #endif + env = _nc_get_locale(); +- sp->_legacy_coding = ((env == 0) ++ sp->_legacy_coding = ((env == NULL) + || !strcmp(env, "C") + || !strcmp(env, "POSIX")); + T(("legacy-coding %d", sp->_legacy_coding)); +@@ -652,19 +652,19 @@ + sp->_nc_sp_idcok = TRUE; + sp->_nc_sp_idlok = FALSE; + +- sp->oldhash = 0; +- sp->newhash = 0; ++ sp->oldhash = NULL; ++ sp->newhash = NULL; + + T(("creating newscr")); + NewScreen(sp) = NCURSES_SP_NAME(newwin) (NCURSES_SP_ARGx slines, scolumns, + 0, 0); +- if (NewScreen(sp) == 0) { ++ if (NewScreen(sp) == NULL) { + ReturnScreenError(); + } + T(("creating curscr")); + CurScreen(sp) = NCURSES_SP_NAME(newwin) (NCURSES_SP_ARGx slines, scolumns, + 0, 0); +- if (CurScreen(sp) == 0) { ++ if (CurScreen(sp) == NULL) { + ReturnScreenError(); + } + #if !USE_REENTRANT +@@ -684,7 +684,7 @@ + * unless we use the term-driver. + */ + #ifndef USE_TERM_DRIVER +- if (cur_term != 0 && ++ if (cur_term != NULL && + !memcmp(&cur_term->Ottyb, &null_TTY, sizeof(TTY))) + #endif + { +@@ -750,7 +750,7 @@ + assert((sp->_lines_avail + sp->_topstolen + bottom_stolen) == slines); + if ((StdScreen(sp) = NCURSES_SP_NAME(newwin) (NCURSES_SP_ARGx + sp->_lines_avail, +- scolumns, 0, 0)) == 0) { ++ scolumns, 0, 0)) == NULL) { + ReturnScreenError(); + } + SET_LINES(sp->_lines_avail); +@@ -769,7 +769,7 @@ + bool filtered, + int slk_format) + { +- SCREEN *sp = 0; ++ SCREEN *sp = NULL; + int rc = NCURSES_SP_NAME(_nc_setupscreen) (&sp, + slines, + scolumns, +@@ -777,7 +777,7 @@ + filtered, + slk_format); + if (rc != OK) +- _nc_set_screen(0); ++ _nc_set_screen(NULL); + return rc; + } + #endif +@@ -800,13 +800,13 @@ + TR_FUNC_ARG(0, init))); + + #if NCURSES_SP_FUNCS +- if (SP_PARM != 0 && SP_PARM->_prescreen) ++ if (SP_PARM != NULL && SP_PARM->_prescreen) + #endif + { + if (line == 0) { + code = OK; + } else { +- if (safe_ripoff_sp == 0) { ++ if (safe_ripoff_sp == NULL) { + safe_ripoff_sp = safe_ripoff_stack; + } + if (safe_ripoff_sp < safe_ripoff_stack + N_RIPS) { +Index: ncurses/base/lib_slk.c +Prereq: 1.50 +--- ncurses-6.5-20241130+/ncurses/base/lib_slk.c 2022-08-20 18:29:22.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_slk.c 2024-12-07 20:03:37.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020,2022 Thomas E. Dickey * ++ * Copyright 2020-2022,2024 Thomas E. Dickey * + * Copyright 1998-2010,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -48,7 +48,7 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_slk.c,v 1.50 2022/08/20 18:29:22 tom Exp $") ++MODULE_ID("$Id: lib_slk.c,v 1.51 2024/12/07 20:03:37 tom Exp $") + + #ifdef USE_TERM_DRIVER + #define NumLabels InfoOf(SP_PARM).numlabels +@@ -68,7 +68,7 @@ + static int + slk_failed(NCURSES_SP_DCL0) + { +- if ((0 != SP_PARM) && SP_PARM->_slk) { ++ if ((NULL != SP_PARM) && SP_PARM->_slk) { + FreeIfNeeded(SP_PARM->_slk->ent); + free(SP_PARM->_slk); + SP_PARM->_slk = (SLK *) 0; +@@ -148,7 +148,7 @@ + assert(stwin); + + sp = _nc_screen_of(stwin); +- if (0 == sp) ++ if (NULL == sp) + returnCode(ERR); + + assert(TerminalOf(SP_PARM)); +@@ -157,7 +157,7 @@ + + if (SP_PARM->_slk) { /* we did this already, so simply return */ + returnCode(OK); +- } else if ((SP_PARM->_slk = typeCalloc(SLK, 1)) == 0) ++ } else if ((SP_PARM->_slk = typeCalloc(SLK, 1)) == NULL) + returnCode(ERR); + + if (!SP_PARM->slk_format) +@@ -196,13 +196,13 @@ + for (i = 0; i < SP_PARM->_slk->labcnt; i++) { + size_t used = max_length + 1; + +- SP_PARM->_slk->ent[i].ent_text = (char *) _nc_doalloc(0, used); +- if (SP_PARM->_slk->ent[i].ent_text == 0) ++ SP_PARM->_slk->ent[i].ent_text = (char *) _nc_doalloc(NULL, used); ++ if (SP_PARM->_slk->ent[i].ent_text == NULL) + returnCode(slk_failed(NCURSES_SP_ARG)); + memset(SP_PARM->_slk->ent[i].ent_text, 0, used); + +- SP_PARM->_slk->ent[i].form_text = (char *) _nc_doalloc(0, used); +- if (SP_PARM->_slk->ent[i].form_text == 0) ++ SP_PARM->_slk->ent[i].form_text = (char *) _nc_doalloc(NULL, used); ++ if (SP_PARM->_slk->ent[i].form_text == NULL) + returnCode(slk_failed(NCURSES_SP_ARG)); + + if (used > 1) { +@@ -235,7 +235,7 @@ + { + T((T_CALLED("slk_restore(%p)"), (void *) SP_PARM)); + +- if (0 == SP_PARM) ++ if (NULL == SP_PARM) + returnCode(ERR); + if (SP_PARM->_slk == NULL) + returnCode(ERR); +Index: ncurses/base/lib_slkatr_set.c +Prereq: 1.17 +--- ncurses-6.5-20241130+/ncurses/base/lib_slkatr_set.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_slkatr_set.c 2024-12-07 20:03:37.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 1998-2014,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -39,7 +39,7 @@ + */ + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_slkatr_set.c,v 1.17 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: lib_slkatr_set.c,v 1.18 2024/12/07 20:03:37 tom Exp $") + + NCURSES_EXPORT(int) + NCURSES_SP_NAME(slk_attr_set) (NCURSES_SP_DCLx +@@ -56,8 +56,8 @@ + color_pair)); + + set_extended_pair(opts, color_pair); +- if (SP_PARM != 0 +- && SP_PARM->_slk != 0 ++ if (SP_PARM != NULL ++ && SP_PARM->_slk != NULL + && color_pair >= 0 + && color_pair < SP_PARM->_pair_limit) { + TR(TRACE_ATTRS, ("... current %s", _tracech_t(CHREF(SP_PARM->_slk->attr)))); +Index: ncurses/base/lib_slkatrof.c +Prereq: 1.12 +--- ncurses-6.5-20241130+/ncurses/base/lib_slkatrof.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_slkatrof.c 2024-12-07 20:03:37.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 1998-2005,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -39,14 +39,14 @@ + */ + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_slkatrof.c,v 1.12 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: lib_slkatrof.c,v 1.13 2024/12/07 20:03:37 tom Exp $") + + NCURSES_EXPORT(int) + NCURSES_SP_NAME(slk_attroff) (NCURSES_SP_DCLx const chtype attr) + { + T((T_CALLED("slk_attroff(%p,%s)"), (void *) SP_PARM, _traceattr(attr))); + +- if (SP_PARM != 0 && SP_PARM->_slk != 0) { ++ if (SP_PARM != NULL && SP_PARM->_slk != NULL) { + TR(TRACE_ATTRS, ("... current %s", _tracech_t(CHREF(SP_PARM->_slk->attr)))); + RemAttr(SP_PARM->_slk->attr, attr); + if ((attr & A_COLOR) != 0) { +Index: ncurses/base/lib_slkatron.c +Prereq: 1.13 +--- ncurses-6.5-20241130+/ncurses/base/lib_slkatron.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_slkatron.c 2024-12-07 20:03:37.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 1998-2009,2010 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -39,14 +39,14 @@ + */ + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_slkatron.c,v 1.13 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: lib_slkatron.c,v 1.14 2024/12/07 20:03:37 tom Exp $") + + NCURSES_EXPORT(int) + NCURSES_SP_NAME(slk_attron) (NCURSES_SP_DCLx const chtype attr) + { + T((T_CALLED("slk_attron(%p,%s)"), (void *) SP_PARM, _traceattr(attr))); + +- if (SP_PARM != 0 && SP_PARM->_slk != 0) { ++ if (SP_PARM != NULL && SP_PARM->_slk != NULL) { + TR(TRACE_ATTRS, ("... current %s", _tracech_t(CHREF(SP_PARM->_slk->attr)))); + AddAttr(SP_PARM->_slk->attr, attr); + if ((attr & A_COLOR) != 0) { +Index: ncurses/base/lib_slkatrset.c +Prereq: 1.11 +--- ncurses-6.5-20241130+/ncurses/base/lib_slkatrset.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_slkatrset.c 2024-12-07 20:03:37.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 1998-2005,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -39,14 +39,14 @@ + */ + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_slkatrset.c,v 1.11 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: lib_slkatrset.c,v 1.12 2024/12/07 20:03:37 tom Exp $") + + NCURSES_EXPORT(int) + NCURSES_SP_NAME(slk_attrset) (NCURSES_SP_DCLx const chtype attr) + { + T((T_CALLED("slk_attrset(%p,%s)"), (void *) SP_PARM, _traceattr(attr))); + +- if (SP_PARM != 0 && SP_PARM->_slk != 0) { ++ if (SP_PARM != NULL && SP_PARM->_slk != NULL) { + SetAttr(SP_PARM->_slk->attr, attr); + returnCode(OK); + } else +Index: ncurses/base/lib_slkattr.c +Prereq: 1.12 +--- ncurses-6.5-20241130+/ncurses/base/lib_slkattr.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_slkattr.c 2024-12-07 20:03:37.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 1998-2009,2010 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -39,14 +39,14 @@ + */ + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_slkattr.c,v 1.12 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: lib_slkattr.c,v 1.13 2024/12/07 20:03:37 tom Exp $") + + NCURSES_EXPORT(attr_t) + NCURSES_SP_NAME(slk_attr) (NCURSES_SP_DCL0) + { + T((T_CALLED("slk_attr(%p)"), (void *) SP_PARM)); + +- if (SP_PARM != 0 && SP_PARM->_slk != 0) { ++ if (SP_PARM != NULL && SP_PARM->_slk != NULL) { + attr_t result = AttrOf(SP_PARM->_slk->attr) & ALL_BUT_COLOR; + int pair = GetPair(SP_PARM->_slk->attr); + +Index: ncurses/base/lib_slkclear.c +Prereq: 1.15 +--- ncurses-6.5-20241130+/ncurses/base/lib_slkclear.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_slkclear.c 2024-12-07 20:03:37.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 1998-2007,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -41,7 +41,7 @@ + */ + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_slkclear.c,v 1.15 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: lib_slkclear.c,v 1.16 2024/12/07 20:03:37 tom Exp $") + + NCURSES_EXPORT(int) + NCURSES_SP_NAME(slk_clear) (NCURSES_SP_DCL0) +@@ -50,7 +50,7 @@ + + T((T_CALLED("slk_clear(%p)"), (void *) SP_PARM)); + +- if (SP_PARM != 0 && SP_PARM->_slk != 0) { ++ if (SP_PARM != NULL && SP_PARM->_slk != NULL) { + SP_PARM->_slk->hidden = TRUE; + /* For simulated SLK's it looks much more natural to + inherit those attributes from the standard screen */ +Index: ncurses/base/lib_slkcolor.c +Prereq: 1.20 +--- ncurses-6.5-20241130+/ncurses/base/lib_slkcolor.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_slkcolor.c 2024-12-07 20:03:37.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2018,2020 Thomas E. Dickey * ++ * Copyright 2018-2020,2024 Thomas E. Dickey * + * Copyright 1998-2014,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -39,7 +39,7 @@ + */ + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_slkcolor.c,v 1.20 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: lib_slkcolor.c,v 1.21 2024/12/07 20:03:37 tom Exp $") + + static int + _nc_slk_color(SCREEN *sp, int pair_arg) +@@ -48,8 +48,8 @@ + + T((T_CALLED("slk_color(%p,%d)"), (void *) sp, pair_arg)); + +- if (sp != 0 +- && sp->_slk != 0 ++ if (sp != NULL ++ && sp->_slk != NULL + && pair_arg >= 0 + && pair_arg < sp->_pair_limit) { + TR(TRACE_ATTRS, ("... current is %s", _tracech_t(CHREF(sp->_slk->attr)))); +Index: ncurses/base/lib_slklab.c +Prereq: 1.11 +--- ncurses-6.5-20241130+/ncurses/base/lib_slklab.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_slklab.c 2024-12-07 20:03:37.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 1998-2003,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -41,15 +41,15 @@ + */ + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_slklab.c,v 1.11 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: lib_slklab.c,v 1.12 2024/12/07 20:03:37 tom Exp $") + + NCURSES_EXPORT(char *) + NCURSES_SP_NAME(slk_label) (NCURSES_SP_DCLx int n) + { + T((T_CALLED("slk_label(%p,%d)"), (void *) SP_PARM, n)); + +- if (SP_PARM == 0 || SP_PARM->_slk == 0 || n < 1 || n > SP_PARM->_slk->labcnt) +- returnPtr(0); ++ if (SP_PARM == NULL || SP_PARM->_slk == NULL || n < 1 || n > SP_PARM->_slk->labcnt) ++ returnPtr(NULL); + returnPtr(SP_PARM->_slk->ent[n - 1].ent_text); + } + +Index: ncurses/base/lib_slkrefr.c +Prereq: 1.33 +--- ncurses-6.5-20241130+/ncurses/base/lib_slkrefr.c 2024-07-27 19:23:59.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_slkrefr.c 2024-12-07 17:58:16.000000000 +0000 +@@ -44,7 +44,7 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_slkrefr.c,v 1.33 2024/07/27 19:23:59 tom Exp $") ++MODULE_ID("$Id: lib_slkrefr.c,v 1.34 2024/12/07 17:58:16 tom Exp $") + + #ifdef USE_TERM_DRIVER + #define NumLabels InfoOf(SP_PARM).numlabels +@@ -83,7 +83,7 @@ + SLK *slk; + int numlab; + +- if (sp == 0) ++ if (sp == NULL) + return; + + slk = sp->_slk; +@@ -145,7 +145,7 @@ + { + T((T_CALLED("slk_noutrefresh(%p)"), (void *) SP_PARM)); + +- if (SP_PARM == 0 || SP_PARM->_slk == 0) ++ if (SP_PARM == NULL || SP_PARM->_slk == NULL) + returnCode(ERR); + if (SP_PARM->_slk->hidden) + returnCode(OK); +@@ -170,7 +170,7 @@ + { + T((T_CALLED("slk_refresh(%p)"), (void *) SP_PARM)); + +- if (SP_PARM == 0 || SP_PARM->_slk == 0) ++ if (SP_PARM == NULL || SP_PARM->_slk == NULL) + returnCode(ERR); + if (SP_PARM->_slk->hidden) + returnCode(OK); +Index: ncurses/base/lib_slkset.c +Prereq: 1.26 +--- ncurses-6.5-20241130+/ncurses/base/lib_slkset.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_slkset.c 2024-12-07 20:03:37.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2019,2020 Thomas E. Dickey * ++ * Copyright 2019-2020,2024 Thomas E. Dickey * + * Copyright 1998-2011,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -45,7 +45,7 @@ + #endif + #endif + +-MODULE_ID("$Id: lib_slkset.c,v 1.26 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: lib_slkset.c,v 1.27 2024/12/07 20:03:37 tom Exp $") + + NCURSES_EXPORT(int) + NCURSES_SP_NAME(slk_set) (NCURSES_SP_DCLx int i, const char *astr, int format) +@@ -60,14 +60,14 @@ + + T((T_CALLED("slk_set(%p, %d, \"%s\", %d)"), (void *) SP_PARM, i, str, format)); + +- if (SP_PARM == 0 +- || (slk = SP_PARM->_slk) == 0 ++ if (SP_PARM == NULL ++ || (slk = SP_PARM->_slk) == NULL + || i < 1 + || i > slk->labcnt + || format < 0 + || format > 2) + returnCode(ERR); +- if (str == 0) ++ if (str == NULL) + str = ""; + --i; /* Adjust numbering of labels */ + +@@ -84,7 +84,7 @@ + size_t need; + + init_mb(state); +- need = mbrtowc(0, p, strlen(p), &state); ++ need = mbrtowc(NULL, p, strlen(p), &state); + if (need == (size_t) -1) + break; + mbrtowc(&wc, p, need, &state); +@@ -107,14 +107,14 @@ + #endif + + FreeIfNeeded(slk->ent[i].ent_text); +- if ((slk->ent[i].ent_text = strdup(str)) == 0) ++ if ((slk->ent[i].ent_text = strdup(str)) == NULL) + returnCode(ERR); + slk->ent[i].ent_text[numchrs] = '\0'; + + if ((slk->ent[i].form_text = (char *) _nc_doalloc(slk->ent[i].form_text, + (size_t) (limit + + numchrs + 1)) +- ) == 0) ++ ) == NULL) + returnCode(ERR); + + switch (format) { +Index: ncurses/base/lib_slktouch.c +Prereq: 1.9 +--- ncurses-6.5-20241130+/ncurses/base/lib_slktouch.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_slktouch.c 2024-12-07 20:03:37.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 1998-2000,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -39,14 +39,14 @@ + */ + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_slktouch.c,v 1.9 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: lib_slktouch.c,v 1.10 2024/12/07 20:03:37 tom Exp $") + + NCURSES_EXPORT(int) + NCURSES_SP_NAME(slk_touch) (NCURSES_SP_DCL0) + { + T((T_CALLED("slk_touch(%p)"), (void *) SP_PARM)); + +- if (SP_PARM == 0 || SP_PARM->_slk == 0) ++ if (SP_PARM == NULL || SP_PARM->_slk == NULL) + returnCode(ERR); + SP_PARM->_slk->dirty = TRUE; + +Index: ncurses/base/lib_ungetch.c +Prereq: 1.17 +--- ncurses-6.5-20241130+/ncurses/base/lib_ungetch.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_ungetch.c 2024-12-07 20:03:37.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 1998-2011,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -43,7 +43,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_ungetch.c,v 1.17 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: lib_ungetch.c,v 1.18 2024/12/07 20:03:37 tom Exp $") + + #include <fifo_defs.h> + +@@ -65,7 +65,7 @@ + + T((T_CALLED("ungetch(%p,%s)"), (void *) sp, _nc_tracechar(sp, ch))); + +- if (sp != 0 && tail >= 0) { ++ if (sp != NULL && tail >= 0) { + if (head < 0) { + head = 0; + t_inc(); +Index: ncurses/base/lib_wattron.c +Prereq: 1.13 +--- ncurses-6.5-20241130+/ncurses/base/lib_wattron.c 2022-04-15 22:34:38.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_wattron.c 2024-12-07 20:03:37.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020,2022 Thomas E. Dickey * ++ * Copyright 2020-2022,2024 Thomas E. Dickey * + * Copyright 1998-2009,2010 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -43,13 +43,13 @@ + #include <curses.priv.h> + #include <ctype.h> + +-MODULE_ID("$Id: lib_wattron.c,v 1.13 2022/04/15 22:34:38 tom Exp $") ++MODULE_ID("$Id: lib_wattron.c,v 1.14 2024/12/07 20:03:37 tom Exp $") + + NCURSES_EXPORT(int) + wattr_on(WINDOW *win, attr_t at, void *opts GCC_UNUSED) + { + T((T_CALLED("wattr_on(%p,%s)"), (void *) win, _traceattr(at))); +- if (win != 0) { ++ if (win != NULL) { + T(("... current %s (%d)", + _traceattr(WINDOW_ATTRS(win)), + GET_WINDOW_PAIR(win))); +Index: ncurses/base/lib_winch.c +Prereq: 1.9 +--- ncurses-6.5-20241130+/ncurses/base/lib_winch.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_winch.c 2024-12-07 20:03:37.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 1998-2009,2010 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -40,13 +40,13 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_winch.c,v 1.9 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: lib_winch.c,v 1.10 2024/12/07 20:03:37 tom Exp $") + + NCURSES_EXPORT(chtype) + winch(WINDOW *win) + { + T((T_CALLED("winch(%p)"), (void *) win)); +- if (win != 0) { ++ if (win != NULL) { + returnChtype((chtype) CharOf(win->_line[win->_cury].text[win->_curx]) + | AttrOf(win->_line[win->_cury].text[win->_curx])); + } else { +Index: ncurses/base/lib_window.c +Prereq: 1.32 +--- ncurses-6.5-20241130+/ncurses/base/lib_window.c 2021-10-23 23:06:24.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/lib_window.c 2024-12-07 20:03:37.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020,2021 Thomas E. Dickey * ++ * Copyright 2020-2021,2024 Thomas E. Dickey * + * Copyright 1998-2010,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -40,7 +40,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_window.c,v 1.32 2021/10/23 23:06:24 tom Exp $") ++MODULE_ID("$Id: lib_window.c,v 1.33 2024/12/07 20:03:37 tom Exp $") + + NCURSES_EXPORT(void) + _nc_synchook(WINDOW *win) +@@ -61,8 +61,8 @@ + + T((T_CALLED("mvderwin(%p,%d,%d)"), (void *) win, y, x)); + +- if (win != 0 +- && (orig = win->_parent) != 0 ++ if (win != NULL ++ && (orig = win->_parent) != NULL + && (x >= 0 && y >= 0) + && (x + getmaxx(win) <= getmaxx(orig)) + && (y + getmaxy(win) <= getmaxy(orig))) { +@@ -178,11 +178,11 @@ + dupwin(WINDOW *win) + /* make an exact duplicate of the given window */ + { +- WINDOW *nwin = 0; ++ WINDOW *nwin = NULL; + + T((T_CALLED("dupwin(%p)"), (void *) win)); + +- if (win != 0) { ++ if (win != NULL) { + #if NCURSES_SP_FUNCS + SCREEN *sp = _nc_screen_of(win); + #endif +@@ -199,7 +199,7 @@ + win->_begx); + } + +- if (nwin != 0) { ++ if (nwin != NULL) { + int i; + size_t linesize; + +Index: ncurses/base/nc_panel.c +Prereq: 1.6 +--- ncurses-6.5-20241130+/ncurses/base/nc_panel.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/nc_panel.c 2024-12-07 20:03:37.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 1998-2000,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -33,7 +33,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: nc_panel.c,v 1.6 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: nc_panel.c,v 1.7 2024/12/07 20:03:37 tom Exp $") + + NCURSES_EXPORT(struct panelhook *) + NCURSES_SP_NAME(_nc_panelhook) (NCURSES_SP_DCL0) +@@ -42,7 +42,7 @@ + ? &(SP_PARM->_panelHook) + : (CURRENT_SCREEN + ? &(CURRENT_SCREEN->_panelHook) +- : 0)); ++ : NULL)); + } + + #if NCURSES_SP_FUNCS +Index: ncurses/base/new_pair.c +Prereq: 1.25 +--- ncurses-6.5-20241130+/ncurses/base/new_pair.c 2024-10-05 20:51:29.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/new_pair.c 2024-12-07 18:05:04.000000000 +0000 +@@ -61,7 +61,7 @@ + + #endif + +-MODULE_ID("$Id: new_pair.c,v 1.25 2024/10/05 20:51:29 tom Exp $") ++MODULE_ID("$Id: new_pair.c,v 1.26 2024/12/07 18:05:04 tom Exp $") + + #if NCURSES_EXT_COLORS + +@@ -148,9 +148,9 @@ + + find.fg = fg; + find.bg = bg; +- if (sp != 0) { ++ if (sp != NULL) { + void *pp; +- if ((pp = tfind(&find, &sp->_ordered_pairs, compare_data)) != 0) { ++ if ((pp = tfind(&find, &sp->_ordered_pairs, compare_data)) != NULL) { + const colorpair_t *temp = *(colorpair_t **) pp; + result = (int) (temp - sp->_color_pairs); + } +@@ -253,7 +253,7 @@ + int n; + for (n = 0; n < length; ++n) { + const void *find = tfind(source + n, &sp->_ordered_pairs, compare_data); +- if (find != 0) { ++ if (find != NULL) { + tdelete(source + n, &sp->_ordered_pairs, compare_data); + tsearch(target + n, &sp->_ordered_pairs, compare_data); + } +@@ -266,7 +266,7 @@ + int pair; + + T((T_CALLED("alloc_pair(%d,%d)"), fg, bg)); +- if (SP_PARM == 0) { ++ if (SP_PARM == NULL) { + pair = -1; + } else if ((pair = _nc_find_color_pair(SP_PARM, fg, bg)) < 0) { + /* +@@ -291,7 +291,7 @@ + if (!found && (SP_PARM->_pair_alloc < SP_PARM->_pair_limit)) { + pair = SP_PARM->_pair_alloc; + ReservePairs(SP_PARM, pair); +- if (SP_PARM->_color_pairs == 0) { ++ if (SP_PARM->_color_pairs == NULL) { + pair = -1; + } else { + found = TRUE; +Index: ncurses/base/resizeterm.c +Prereq: 1.57 +--- ncurses-6.5-20241130+/ncurses/base/resizeterm.c 2024-11-23 18:35:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/resizeterm.c 2024-12-07 18:05:04.000000000 +0000 +@@ -46,7 +46,7 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: resizeterm.c,v 1.57 2024/11/23 18:35:34 tom Exp $") ++MODULE_ID("$Id: resizeterm.c,v 1.58 2024/12/07 18:05:04 tom Exp $") + + /* + * If we're trying to be reentrant, do not want any local statics. +@@ -123,10 +123,10 @@ + static ripoff_t * + ripped_window(WINDOW *win) + { +- ripoff_t *result = 0; ++ ripoff_t *result = NULL; + ripoff_t *rop; + +- if (win != 0) { ++ if (win != NULL) { + #ifdef USE_SP_RIPOFF + SCREEN *sp = _nc_screen_of(win); + #endif +@@ -149,7 +149,7 @@ + { + int result = 0; + +- if (win != 0) { ++ if (win != NULL) { + ripoff_t *rop; + + #ifdef USE_SP_RIPOFF +@@ -175,7 +175,7 @@ + { + int depth = 0; + +- if (cmp != 0) { ++ if (cmp != NULL) { + #ifdef USE_SP_WINDOWLIST + SCREEN *sp = _nc_screen_of(cmp); + #endif +@@ -200,9 +200,9 @@ + { + int depth = 0; + +- if (cmp != 0) { ++ if (cmp != NULL) { + WINDOW *tst; +- while ((tst = cmp->_parent) != 0) { ++ while ((tst = cmp->_parent) != NULL) { + ++depth; + cmp = tst; + } +@@ -224,13 +224,13 @@ + + T((T_CALLED("adjust_window(%p,%d,%d)%s depth %d/%d currently %ldx%ld at %ld,%ld"), + (void *) win, ToLines, ToCols, +- (rop != 0) ? " (rip)" : "", ++ (rop != NULL) ? " (rip)" : "", + parent_depth(win), + child_depth(win), + (long) getmaxy(win), (long) getmaxx(win), + (long) getbegy(win) + win->_yoffset, (long) getbegx(win))); + +- if (rop != 0 && rop->line < 0) { ++ if (rop != NULL && rop->line < 0) { + /* + * If it is a ripped-off window at the bottom of the screen, simply + * move it to the same relative position. +@@ -484,8 +484,8 @@ + if (NCURSES_SP_NAME(is_term_resized) (NCURSES_SP_ARGx ToLines, ToCols)) { + #if USE_SIGWINCH + ripoff_t *rop; +- bool slk_visible = (SP_PARM != 0 +- && SP_PARM->_slk != 0 ++ bool slk_visible = (SP_PARM != NULL ++ && SP_PARM->_slk != NULL + && !(SP_PARM->_slk->hidden)); + + if (slk_visible) { +@@ -506,7 +506,7 @@ + */ + for (each_ripoff(rop)) { + if (rop->win != StdScreen(SP_PARM) +- && rop->win != 0 ++ && rop->win != NULL + && rop->line < 0) { + + if (rop->hook != _nc_slk_initialize) { +Index: ncurses/base/tries.c +Prereq: 1.32 +--- ncurses-6.5-20241130+/ncurses/base/tries.c 2023-06-24 15:36:23.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/tries.c 2024-12-07 21:24:18.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020,2023 Thomas E. Dickey * ++ * Copyright 2020-2023,2024 Thomas E. Dickey * + * Copyright 1998-2009,2010 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -41,7 +41,7 @@ + #include <curses.priv.h> + #include <tic.h> + +-MODULE_ID("$Id: tries.c,v 1.32 2023/06/24 15:36:23 tom Exp $") ++MODULE_ID("$Id: tries.c,v 1.33 2024/12/07 21:24:18 tom Exp $") + + /* + * Expand a keycode into the string that it corresponds to, returning null if +@@ -51,12 +51,12 @@ + _nc_expand_try(TRIES * tree, unsigned code, int *count, size_t len) + { + TRIES *ptr = tree; +- char *result = 0; ++ char *result = NULL; + + if (code != 0) { +- while (ptr != 0) { ++ while (ptr != NULL) { + if ((result = _nc_expand_try(ptr->child, code, count, len + 1)) +- != 0) { ++ != NULL) { + break; + } + if (ptr->value == code) { +@@ -69,8 +69,8 @@ + ptr = ptr->sibling; + } + } +- if (result != 0) { +- if (ptr != 0 && (result[len] = (char) ptr->ch) == 0) ++ if (result != NULL) { ++ if (ptr != NULL && (result[len] = (char) ptr->ch) == 0) + *((unsigned char *) (result + len)) = 128; + #ifdef TRACE + if (len == 0 && USE_TRACEF(TRACE_MAXIMUM)) { +@@ -96,7 +96,7 @@ + if (code == 0) + returnCode(FALSE); + +- while (*tree != 0) { ++ while (*tree != NULL) { + if (_nc_remove_key(&(*tree)->child, code)) { + returnCode(TRUE); + } +@@ -128,11 +128,11 @@ + if (!VALID_STRING(string) || *string == 0) + returnCode(FALSE); + +- while (*tree != 0) { ++ while (*tree != NULL) { + if (UChar((*tree)->ch) == UChar(*string)) { + if (string[1] != 0) + returnCode(_nc_remove_string(&(*tree)->child, string + 1)); +- if ((*tree)->child == 0) { ++ if ((*tree)->child == NULL) { + TRIES *to_free = *tree; + *tree = (*tree)->sibling; + free(to_free); +Index: ncurses/base/wresize.c +Prereq: 1.44 +--- ncurses-6.5-20241130+/ncurses/base/wresize.c 2024-09-28 15:56:07.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/base/wresize.c 2024-12-07 18:08:56.000000000 +0000 +@@ -34,7 +34,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: wresize.c,v 1.44 2024/09/28 15:56:07 tom Exp $") ++MODULE_ID("$Id: wresize.c,v 1.45 2024/12/07 18:08:56 tom Exp $") + + static int + cleanup_lines(struct ldat *data, int length) +@@ -109,7 +109,7 @@ + { + int col, row, size_x, size_y; + struct ldat *pline; +- struct ldat *new_lines = 0; ++ struct ldat *new_lines = NULL; + + #ifdef TRACE + T((T_CALLED("wresize(%p,%d,%d)"), (void *) win, ToLines, ToCols)); +@@ -149,7 +149,7 @@ + } + pline = win->_parent->_line; + } else { +- pline = 0; ++ pline = NULL; + } + + /* +@@ -158,7 +158,7 @@ + * (at least temporarily) the array pointing to the individual lines. + */ + new_lines = typeCalloc(struct ldat, (unsigned) (ToLines + 1)); +- if (new_lines == 0) ++ if (new_lines == NULL) + returnCode(ERR); + + /* +@@ -175,7 +175,7 @@ + if (row <= size_y) { + if (ToCols != size_x) { + s = typeMalloc(NCURSES_CH_T, (unsigned) ToCols + 1); +- if (s == 0) ++ if (s == NULL) + returnCode(cleanup_lines(new_lines, row)); + for (col = 0; col <= ToCols; ++col) { + bool valid = (col <= size_x); +@@ -195,15 +195,15 @@ + } + } else { + s = typeMalloc(NCURSES_CH_T, (unsigned) ToCols + 1); +- if (s == 0) ++ if (s == NULL) + returnCode(cleanup_lines(new_lines, row)); + for (col = 0; col <= ToCols; ++col) + s[col] = win->_nc_bkgd; + } +- } else if (pline != 0 && pline[win->_pary + row].text != 0) { ++ } else if (pline != NULL && pline[win->_pary + row].text != NULL) { + s = &pline[win->_pary + row].text[win->_parx]; + } else { +- s = 0; ++ s = NULL; + } + + if_USE_SCROLL_HINTS(new_lines[row].oldindex = row); +Index: ncurses/curses.priv.h +Prereq: 1.696 +--- ncurses-6.5-20241130+/ncurses/curses.priv.h 2024-11-30 21:32:44.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/curses.priv.h 2024-12-07 18:27:10.000000000 +0000 +@@ -35,7 +35,7 @@ + ****************************************************************************/ + + /* +- * $Id: curses.priv.h,v 1.696 2024/11/30 21:32:44 tom Exp $ ++ * $Id: curses.priv.h,v 1.697 2024/12/07 18:27:10 tom Exp $ + * + * curses.priv.h + * +@@ -445,8 +445,8 @@ + #include <term.priv.h> + #include <nc_termios.h> + +-#define IsPreScreen(sp) (((sp) != 0) && sp->_prescreen) +-#define HasTerminal(sp) (((sp) != 0) && (0 != ((sp)->_term))) ++#define IsPreScreen(sp) (((sp) != NULL) && sp->_prescreen) ++#define HasTerminal(sp) (((sp) != NULL) && (NULL != ((sp)->_term))) + #define IsValidScreen(sp) (HasTerminal(sp) && !IsPreScreen(sp)) + + #if USE_REENTRANT +@@ -1291,7 +1291,7 @@ + #define WINDOW_EXT(w,m) (((WINDOWLIST *)((void *)((char *)(w) - offsetof(WINDOWLIST, win))))->m) + + #ifdef USE_SP_WINDOWLIST +-#define SP_INIT_WINDOWLIST(sp) WindowList(sp) = 0 ++#define SP_INIT_WINDOWLIST(sp) WindowList(sp) = NULL + #else + #define SP_INIT_WINDOWLIST(sp) /* nothing */ + #endif +@@ -1308,7 +1308,7 @@ + sp->_cursor = -1; \ + SP_INIT_WINDOWLIST(sp); \ + sp->_outch = NCURSES_OUTC_FUNC; \ +- sp->jump = 0 \ ++ sp->jump = NULL \ + + /* usually in <limits.h> */ + #ifndef UCHAR_MAX +@@ -1546,7 +1546,7 @@ + #define CHANGED -1 + + #define LEGALYX(w, y, x) \ +- ((w) != 0 && \ ++ ((w) != NULL && \ + ((x) >= 0 && (x) <= (w)->_maxx && \ + (y) >= 0 && (y) <= (w)->_maxy)) + +@@ -1579,12 +1579,12 @@ + #include <nc_alloc.h> + #include <nc_access.h> + +-#define FreeIfNeeded(p) if ((p) != 0) free(p) ++#define FreeIfNeeded(p) if ((p) != NULL) free(p) + + /* FreeAndNull() is not a comma-separated expression because some compilers + * do not accept a mixture of void with values. + */ +-#define FreeAndNull(p) do { free(p); p = 0; } while (0) ++#define FreeAndNull(p) do { free(p); p = NULL; } while (0) + + #ifdef EXP_OOM_TESTING + extern NCURSES_EXPORT(void *) _nc_oom_malloc(size_t size); +@@ -1606,21 +1606,21 @@ + #define TYPE_MALLOC(type, size, name) \ + do { \ + name = typeMalloc(type, size); \ +- if (name == 0) \ ++ if (name == NULL) \ + _nc_err_abort(MSG_NO_MEMORY); \ + } while (0) + + #define TYPE_CALLOC(type, size, name) \ + do { \ + name = typeCalloc(type, size); \ +- if (name == 0) \ ++ if (name == NULL) \ + _nc_err_abort(MSG_NO_MEMORY); \ + } while (0) + + #define TYPE_REALLOC(type, size, name) \ + do { \ + name = typeRealloc(type, size, name); \ +- if (name == 0) \ ++ if (name == NULL) \ + _nc_err_abort(MSG_NO_MEMORY); \ + } while (0) + +@@ -1652,8 +1652,8 @@ + /* + * Standardize/simplify common loops + */ +-#define each_screen(p) p = _nc_screen_chain; p != 0; p = (p)->_next_screen +-#define each_window(sp,p) p = WindowList(sp); p != 0; p = (p)->next ++#define each_screen(p) p = _nc_screen_chain; p != NULL; p = (p)->_next_screen ++#define each_window(sp,p) p = WindowList(sp); p != NULL; p = (p)->next + #define each_ripoff(p) p = safe_ripoff_stack; (p - safe_ripoff_stack) < N_RIPS; ++p + + /* +@@ -1665,8 +1665,8 @@ + #define T_CREATE(fmt) "create :" fmt + #define T_RETURN(fmt) "return }" fmt + +-#define NonNull(s) ((s) != 0 ? s : "<null>") +-#define NonEmpty(s) ((s) != 0 && *(s) != '\0') ++#define NonNull(s) ((s) != NULL ? s : "<null>") ++#define NonEmpty(s) ((s) != NULL && *(s) != '\0') + + #ifdef TRACE + +@@ -1858,18 +1858,18 @@ + TR(TRACE_ATTRS, ("new attribute is %s", _traceattr((S))));} + + #define DelCharCost(sp,count) \ +- ((parm_dch != 0) \ ++ ((parm_dch != NULL) \ + ? sp->_dch_cost \ +- : ((delete_character != 0) \ ++ : ((delete_character != NULL) \ + ? (sp->_dch1_cost * count) \ + : INFINITY)) + + #define InsCharCost(sp,count) \ +- ((parm_ich != 0) \ ++ ((parm_ich != NULL) \ + ? sp->_ich_cost \ + : ((enter_insert_mode && exit_insert_mode) \ + ? sp->_smir_cost + sp->_rmir_cost + (sp->_ip_cost * count) \ +- : ((insert_character != 0) \ ++ : ((insert_character != NULL) \ + ? ((sp->_ich1_cost + sp->_ip_cost) * count) \ + : INFINITY))) + +@@ -1956,7 +1956,7 @@ + #endif + + #define save_ttytype(termp) \ +- if (TerminalType(termp).term_names != 0) { \ ++ if (TerminalType(termp).term_names != NULL) { \ + _nc_STRNCPY(ttytype, \ + TerminalType(termp).term_names, \ + NAMESIZE - 1); \ +@@ -2034,7 +2034,7 @@ + extern NCURSES_EXPORT(void) _nc_change_pair(SCREEN *, int); + + #define ReservePairs(sp,want) \ +- if ((sp->_color_pairs == 0) || (want >= sp->_pair_alloc)) \ ++ if ((sp->_color_pairs == NULL) || (want >= sp->_pair_alloc)) \ + _nc_reserve_pairs(sp, want) + + /* lib_getch.c */ +@@ -2077,7 +2077,7 @@ + extern NCURSES_EXPORT(void) _nc_forget_prescr(void); + #else + #define _nc_find_prescr() _nc_prescreen.allocated +-#define _nc_forget_prescr() _nc_prescreen.allocated = 0 ++#define _nc_forget_prescr() _nc_prescreen.allocated = NULL + #endif + + /* lib_set_term.c */ +@@ -2311,7 +2311,7 @@ + + #define USE_SETBUF_0 0 + +-#define NC_OUTPUT(sp) ((sp != 0 && sp->_ofp != 0) ? sp->_ofp : stdout) ++#define NC_OUTPUT(sp) ((sp != NULL && sp->_ofp != NULL) ? sp->_ofp : stdout) + + /* + * On systems with a broken linker, define 'SP' as a function to force the +@@ -2385,7 +2385,7 @@ + #define SetSafeOutcWrapper(outc) \ + SCREEN* sp = CURRENT_SCREEN; \ + struct screen outc_wrapper; \ +- if (sp==0) { \ ++ if (sp == NULL) { \ + sp = &outc_wrapper; \ + memset(sp,0,sizeof(struct screen)); \ + sp->_outch = _nc_outc_wrapper; \ +@@ -2579,7 +2579,7 @@ + # endif + #else + # define IsTermInfo(sp) TRUE +-# define HasTInfoTerminal(sp) (0 != TerminalOf(sp)) ++# define HasTInfoTerminal(sp) (NULL != TerminalOf(sp)) + # if defined(EXP_WIN32_DRIVER) + # define IsTermInfoOnConsole(sp) _nc_console_test(TerminalOf(sp)->Filedes) + # else +Index: ncurses/new_pair.h +Prereq: 1.15 +--- ncurses-6.5-20241130+/ncurses/new_pair.h 2024-10-05 20:57:47.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/new_pair.h 2024-12-07 17:27:35.000000000 +0000 +@@ -34,7 +34,7 @@ + /* + * Common type definitions and macros for new_pair.c, lib_color.c + * +- * $Id: new_pair.h,v 1.15 2024/10/05 20:57:47 tom Exp $ ++ * $Id: new_pair.h,v 1.16 2024/12/07 17:27:35 tom Exp $ + */ + + #ifndef NEW_PAIR_H +@@ -111,7 +111,7 @@ + * that the index is within the limits of the table which we allocated. + */ + #define ValidPair(sp,pair) \ +- ((sp != 0) && (pair >= 0) && (pair < sp->_pair_limit) && sp->_coloron) ++ ((sp != NULL) && (pair >= 0) && (pair < sp->_pair_limit) && sp->_coloron) + + #if NCURSES_EXT_FUNCS && NCURSES_EXT_COLORS + extern NCURSES_EXPORT(void) _nc_copy_pairs(SCREEN*, colorpair_t*, colorpair_t*, int); +Index: ncurses/report_offsets.c +Prereq: 1.29 +--- ncurses-6.5-20241130+/ncurses/report_offsets.c 2024-05-25 23:00:26.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/report_offsets.c 2024-12-07 21:18:23.000000000 +0000 +@@ -34,10 +34,10 @@ + #define NEW_PAIR_INTERNAL 1 + #include <curses.priv.h> + +-MODULE_ID("$Id: report_offsets.c,v 1.29 2024/05/25 23:00:26 tom Exp $") ++MODULE_ID("$Id: report_offsets.c,v 1.30 2024/12/07 21:18:23 tom Exp $") + + #define show_size(type) \ +- flag = 0; \ ++ flag = NULL; \ + last = 0; \ + printf("%5lu " #type "\n", (unsigned long)sizeof(type)) + #define show_name(name) \ +@@ -48,7 +48,7 @@ + printf("?? incorrect order for " #type "." #member "\n"); \ + printf("%5lu %c " #type "." #member "\n", next, flag ? *flag : ' '); \ + last = next; \ +- flag = 0 ++ flag = NULL + + #if NCURSES_WIDECHAR && NCURSES_EXT_COLORS + #define show_COLORS(type,member) { flag = "c"; show_offset(type,member); } +@@ -104,7 +104,7 @@ + int + main(void) + { +- const char *flag = 0; ++ const char *flag = NULL; + unsigned long last, next; + + printf("Size/offsets of data structures:\n"); +Index: ncurses/tinfo/MKcaptab.awk +Prereq: 1.21 +--- ncurses-6.5-20241130+/ncurses/tinfo/MKcaptab.awk 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/MKcaptab.awk 2024-12-07 20:52:55.000000000 +0000 +@@ -1,5 +1,5 @@ + ############################################################################## +-# Copyright 2020 Thomas E. Dickey # ++# Copyright 2020,2024 Thomas E. Dickey # + # Copyright 1998-2006,2007 Free Software Foundation, Inc. # + # # + # Permission is hereby granted, free of charge, to any person obtaining a # +@@ -26,7 +26,7 @@ + # use or other dealings in this Software without prior written # + # authorization. # + ############################################################################## +-# $Id: MKcaptab.awk,v 1.21 2020/02/02 23:34:34 tom Exp $ ++# $Id: MKcaptab.awk,v 1.22 2024/12/07 20:52:55 tom Exp $ + function add_string(text) { + if (text != "IGNORE") { + offsets[num_strings] = offset; +@@ -53,7 +53,7 @@ + printf "/* generated by MKcaptab.awk %s(%d) */\n", tablename, bigstrings; + print "" + if (bigstrings) { +- printf "static struct alias *_nc_%s_table = 0;\n", tablename; ++ printf "static struct alias *_nc_%s_table = NULL;\n", tablename; + print ""; + printf "static const char %s_text[] = \"\\\n", tablename; + } else { +Index: ncurses/tinfo/MKcaptab.sh +Prereq: 1.20 +--- ncurses-6.5-20241130+/ncurses/tinfo/MKcaptab.sh 2023-04-22 15:12:57.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/MKcaptab.sh 2024-12-07 21:30:44.000000000 +0000 +@@ -1,6 +1,6 @@ + #!/bin/sh + ############################################################################## +-# Copyright 2019-2020,2023 Thomas E. Dickey # ++# Copyright 2019-2023,2024 Thomas E. Dickey # + # Copyright 2007-2010,2011 Free Software Foundation, Inc. # + # # + # Permission is hereby granted, free of charge, to any person obtaining a # +@@ -27,13 +27,13 @@ + # use or other dealings in this Software without prior written # + # authorization. # + ############################################################################## +-# $Id: MKcaptab.sh,v 1.20 2023/04/22 15:12:57 tom Exp $ ++# $Id: MKcaptab.sh,v 1.22 2024/12/07 21:30:44 tom Exp $ + + if test $# != 0 + then + AWK="$1"; shift 1 + else +- AWK=awk ++ AWK="awk" + fi + + if test $# != 0 +@@ -71,12 +71,12 @@ + /* *INDENT-OFF* */ + EOF + +-cat "$@" |./make_hash 1 info $OPT1 +-cat "$@" |./make_hash 3 cap $OPT1 ++cat "$@" |./make_hash 1 info "$OPT1" ++cat "$@" |./make_hash 3 cap "$OPT1" + +-cat "$@" |$AWK -f $OPT2 bigstrings=$OPT1 tablename=capalias ++cat "$@" |$AWK -f "$OPT2" bigstrings="$OPT1" tablename=capalias + +-cat "$@" |$AWK -f $OPT2 bigstrings=$OPT1 tablename=infoalias ++cat "$@" |$AWK -f "$OPT2" bigstrings="$OPT1" tablename=infoalias + + cat <<EOF + /* *INDENT-ON* */ +@@ -93,9 +93,9 @@ + const name_table_data * source, + const char *strings) + { +- if (*actual == 0) { ++ if (*actual == NULL) { + *actual = typeCalloc(struct name_table_entry, CAPTABSIZE); +- if (*actual != 0) { ++ if (*actual != NULL) { + unsigned n; + unsigned len = 0; + for (n = 0; n < CAPTABSIZE; ++n) { +@@ -121,9 +121,9 @@ + const char *strings, + size_t tablesize) + { +- if (*actual == 0) { ++ if (*actual == NULL) { + *actual = typeCalloc(struct alias, tablesize + 1); +- if (*actual != 0) { ++ if (*actual != NULL) { + size_t n; + for (n = 0; n < tablesize; ++n) { + add_alias(from); +Index: ncurses/tinfo/MKcodes.awk +Prereq: 1.11 +--- ncurses-6.5-20241130+/ncurses/tinfo/MKcodes.awk 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/MKcodes.awk 2024-12-07 20:03:37.000000000 +0000 +@@ -1,5 +1,5 @@ + ############################################################################## +-# Copyright 2019,2020 Thomas E. Dickey # ++# Copyright 2019-2020,2024 Thomas E. Dickey # + # Copyright 2007-2009,2010 Free Software Foundation, Inc. # + # # + # Permission is hereby granted, free of charge, to any person obtaining a # +@@ -26,7 +26,7 @@ + # use or other dealings in this Software without prior written # + # authorization. # + ############################################################################## +-# $Id: MKcodes.awk,v 1.11 2020/02/02 23:34:34 tom Exp $ ++# $Id: MKcodes.awk,v 1.12 2024/12/07 20:03:37 tom Exp $ + function large_item(value) { + result = sprintf("%d,", offset); + offset = offset + length(value) + 1; +@@ -105,7 +105,7 @@ + print "#if BROKEN_LINKER || USE_REENTRANT" + print "" + if (bigstrings) { +- printf "static const char _nc_code_blob[] = \n" ++ printf "static const char _nc_code_blob[] =\n" + printf "%s;\n", bigstr; + print_offsets("boolcodes", large_boolcodes); + print_offsets("numcodes", large_numcodes); +Index: ncurses/tinfo/MKfallback.sh +Prereq: 1.26 +--- ncurses-6.5-20241130+/ncurses/tinfo/MKfallback.sh 2023-04-22 15:12:57.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/MKfallback.sh 2024-12-07 20:57:05.000000000 +0000 +@@ -27,7 +27,7 @@ + # use or other dealings in this Software without prior written # + # authorization. # + ############################################################################## +-# $Id: MKfallback.sh,v 1.26 2023/04/22 15:12:57 tom Exp $ ++# $Id: MKfallback.sh,v 1.27 2024/12/07 20:57:05 tom Exp $ + # + # MKfallback.sh -- create fallback table for entry reads + # +@@ -150,8 +150,8 @@ + _nc_fallback (const char *name) + { + const TERMTYPE2 *tp = _nc_fallback2(name); +- const TERMTYPE *result = 0; +- if (tp != 0) { ++ const TERMTYPE *result = NULL; ++ if (tp != NULL) { + static TERMTYPE temp; + _nc_export_termtype2(&temp, tp); + result = &temp; +Index: ncurses/tinfo/MKnames.awk +Prereq: 1.24 +--- ncurses-6.5-20241130+/ncurses/tinfo/MKnames.awk 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/MKnames.awk 2024-12-07 20:04:23.000000000 +0000 +@@ -1,5 +1,5 @@ + ############################################################################## +-# Copyright 2019,2020 Thomas E. Dickey # ++# Copyright 2019-2020,2024 Thomas E. Dickey # + # Copyright 1998-2008,2009 Free Software Foundation, Inc. # + # # + # Permission is hereby granted, free of charge, to any person obtaining a # +@@ -26,7 +26,7 @@ + # use or other dealings in this Software without prior written # + # authorization. # + ############################################################################## +-# $Id: MKnames.awk,v 1.24 2020/02/02 23:34:34 tom Exp $ ++# $Id: MKnames.awk,v 1.25 2024/12/07 20:04:23 tom Exp $ + function large_item(value) { + result = sprintf("%d,", offset); + offset = offset + length(value) + 1; +@@ -111,7 +111,7 @@ + print "#if BROKEN_LINKER || USE_REENTRANT" + print "" + if (bigstrings) { +- printf "static const char _nc_name_blob[] = \n" ++ printf "static const char _nc_name_blob[] =\n" + printf "%s;\n", bigstr; + print_offsets("boolfnames", large_boolfnames); + print_offsets("boolnames", large_boolnames); +Index: ncurses/tinfo/MKuserdefs.sh +Prereq: 1.10 +--- ncurses-6.5-20241130+/ncurses/tinfo/MKuserdefs.sh 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/MKuserdefs.sh 2024-12-07 20:04:23.000000000 +0000 +@@ -1,6 +1,6 @@ + #!/bin/sh + ############################################################################## +-# Copyright 2019,2020 Thomas E. Dickey # ++# Copyright 2019-2020,2024 Thomas E. Dickey # + # # + # Permission is hereby granted, free of charge, to any person obtaining a # + # copy of this software and associated documentation files (the "Software"), # +@@ -26,7 +26,7 @@ + # use or other dealings in this Software without prior written # + # authorization. # + ############################################################################## +-# $Id: MKuserdefs.sh,v 1.10 2020/02/02 23:34:34 tom Exp $ ++# $Id: MKuserdefs.sh,v 1.11 2024/12/07 20:04:23 tom Exp $ + AWK=${1-awk}; shift 1 + OPT1=${1-0}; shift 1 + +@@ -69,9 +69,9 @@ + const user_table_data *source, + const char *strings) + { +- if (*actual == 0) { ++ if (*actual == NULL) { + *actual = typeCalloc(struct user_table_entry, USERTABSIZE); +- if (*actual != 0) { ++ if (*actual != NULL) { + unsigned n; + unsigned len = 0; + for (n = 0; n < USERTABSIZE; ++n) { +Index: ncurses/tinfo/access.c +Prereq: 1.40 +--- ncurses-6.5-20241130+/ncurses/tinfo/access.c 2024-11-09 18:30:28.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/access.c 2024-12-07 18:05:04.000000000 +0000 +@@ -52,7 +52,7 @@ + + #include <tic.h> + +-MODULE_ID("$Id: access.c,v 1.40 2024/11/09 18:30:28 tom Exp $") ++MODULE_ID("$Id: access.c,v 1.41 2024/12/07 18:05:04 tom Exp $") + + #define LOWERCASE(c) ((isalpha(UChar(c)) && isupper(UChar(c))) ? tolower(UChar(c)) : (c)) + +@@ -70,7 +70,7 @@ + static char *temp; + char *s; + +- if ((temp = strdup(result)) != 0) ++ if ((temp = strdup(result)) != NULL) + result = temp; + #if !MIXEDCASE_FILENAMES + for (s = result; *s != '\0'; ++s) { +@@ -97,7 +97,7 @@ + #define is_pathname(s) ((((s) != 0) && ((s)[0] == '/')) \ + || (((s)[0] != 0) && ((s)[1] == ':'))) + #else +-#define is_pathname(s) ((s) != 0 && (s)[0] == '/') ++#define is_pathname(s) ((s) != NULL && (s)[0] == '/') + #endif + return is_pathname(path); + } +@@ -113,7 +113,7 @@ + if (test == 0) + test = strrchr(path, '\\'); + #endif +- if (test == 0) ++ if (test == NULL) + test = path; + else + test++; +@@ -131,7 +131,7 @@ + { + int result; + +- if (path == 0) { ++ if (path == NULL) { + errno = ENOENT; + result = -1; + } else if (ACCESS(path, mode) < 0) { +@@ -143,7 +143,7 @@ + + _nc_STRCPY(head, path, sizeof(head)); + leaf = _nc_basename(head); +- if (leaf == 0) ++ if (leaf == NULL) + leaf = head; + *leaf = '\0'; + if (head == leaf) +Index: ncurses/tinfo/add_tries.c +Prereq: 1.13 +--- ncurses-6.5-20241130+/ncurses/tinfo/add_tries.c 2023-06-24 15:36:13.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/add_tries.c 2024-12-07 20:04:23.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2019-2020,2023 Thomas E. Dickey * ++ * Copyright 2019-2023,2024 Thomas E. Dickey * + * Copyright 1998-2009,2010 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -41,7 +41,7 @@ + #include <curses.priv.h> + #include <tic.h> + +-MODULE_ID("$Id: add_tries.c,v 1.13 2023/06/24 15:36:13 tom Exp $") ++MODULE_ID("$Id: add_tries.c,v 1.14 2024/12/07 20:04:23 tom Exp $") + + #define SET_TRY(dst,src) if ((dst->ch = *src++) == 128) dst->ch = '\0' + #define CMP_TRY(a,b) ((a)? (a == b) : (b == 128)) +@@ -57,14 +57,14 @@ + if (!VALID_STRING(str) || *txt == '\0' || code == 0) + returnCode(ERR); + +- if ((*tree) != 0) { ++ if ((*tree) != NULL) { + ptr = savedptr = (*tree); + + for (;;) { + unsigned char cmp = *txt; + + while (!CMP_TRY(ptr->ch, cmp) +- && ptr->sibling != 0) ++ && ptr->sibling != NULL) + ptr = ptr->sibling; + + if (CMP_TRY(ptr->ch, cmp)) { +@@ -72,12 +72,12 @@ + ptr->value = (unsigned short) code; + returnCode(OK); + } +- if (ptr->child != 0) ++ if (ptr->child != NULL) + ptr = ptr->child; + else + break; + } else { +- if ((ptr->sibling = typeCalloc(TRIES, 1)) == 0) { ++ if ((ptr->sibling = typeCalloc(TRIES, 1)) == NULL) { + returnCode(ERR); + } + +@@ -91,7 +91,7 @@ + } else { /* (*tree) == 0 :: First sequence to be added */ + savedptr = ptr = (*tree) = typeCalloc(TRIES, 1); + +- if (ptr == 0) { ++ if (ptr == NULL) { + returnCode(ERR); + } + +@@ -106,8 +106,8 @@ + + ptr = ptr->child; + +- if (ptr == 0) { +- while ((ptr = savedptr) != 0) { ++ if (ptr == NULL) { ++ while ((ptr = savedptr) != NULL) { + savedptr = ptr->child; + free(ptr); + } +Index: ncurses/tinfo/alloc_entry.c +Prereq: 1.80 +--- ncurses-6.5-20241130+/ncurses/tinfo/alloc_entry.c 2024-11-09 20:36:48.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/alloc_entry.c 2024-12-07 21:12:53.000000000 +0000 +@@ -48,7 +48,7 @@ + + #include <tic.h> + +-MODULE_ID("$Id: alloc_entry.c,v 1.80 2024/11/09 20:36:48 tom Exp $") ++MODULE_ID("$Id: alloc_entry.c,v 1.81 2024/12/07 21:12:53 tom Exp $") + + #define ABSENT_OFFSET -1 + #define CANCELLED_OFFSET -2 +@@ -104,7 +104,7 @@ + NCURSES_EXPORT(char *) + _nc_save_str(const char *string) + { +- char *result = 0; ++ char *result = NULL; + size_t old_next_free = next_free; + + if (stringbuf != NULL) { +@@ -164,7 +164,7 @@ + } + + for (i = 0; i < nuses; i++) { +- if (ep->uses[i].name == 0) { ++ if (ep->uses[i].name == NULL) { + ep->uses[i].name = _nc_save_str(ep->uses[i].name); + } + } +@@ -187,7 +187,7 @@ + } + + for (i = 0; i < nuses; i++) { +- if (ep->uses[i].name == 0) ++ if (ep->uses[i].name == NULL) + useoffsets[i] = ABSENT_OFFSET; + else + useoffsets[i] = (int) (ep->uses[i].name - stringbuf); +@@ -237,7 +237,7 @@ + + for (i = 0; i < nuses; i++) { + if (useoffsets[i] == ABSENT_OFFSET) { +- ep->uses[i].name = 0; ++ ep->uses[i].name = NULL; + } else { + ep->uses[i].name = strdup(tp->str_table + useoffsets[i]); + } +@@ -258,7 +258,7 @@ + #endif + unsigned i; + +- if (source == 0 || from == 0 || target == 0 || to == 0) ++ if (source == NULL || from == NULL || target == NULL || to == NULL) + return; + + #if NCURSES_XNAMES +Index: ncurses/tinfo/alloc_ttype.c +Prereq: 1.52 +--- ncurses-6.5-20241130+/ncurses/tinfo/alloc_ttype.c 2024-07-27 19:22:23.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/alloc_ttype.c 2024-12-07 18:08:56.000000000 +0000 +@@ -43,7 +43,7 @@ + + #include <tic.h> + +-MODULE_ID("$Id: alloc_ttype.c,v 1.52 2024/07/27 19:22:23 tom Exp $") ++MODULE_ID("$Id: alloc_ttype.c,v 1.53 2024/12/07 18:08:56 tom Exp $") + + #if NCURSES_XNAMES + /* +@@ -532,8 +532,8 @@ + char *new_table; + size_t new_table_size; + #if NCURSES_EXT_NUMBERS +- short *oldptr = 0; +- int *newptr = 0; ++ short *oldptr = NULL; ++ int *newptr = NULL; + #endif + + DEBUG(2, (T_CALLED("copy_termtype(dst=%p, src=%p, mode=%d)"), (void *) +@@ -594,7 +594,7 @@ + TYPE_MALLOC(int, NUM_NUMBERS(dst), newptr); + dst->Numbers = newptr; + } +- if ((mode == srcINT) && (oldptr != 0)) { ++ if ((mode == srcINT) && (oldptr != NULL)) { + DEBUG(2, ("...copy int ->short")); + for (i = 0; i < NUM_NUMBERS(dst); ++i) { + if (src->Numbers[i] > MAX_OF_TYPE(short)) { +@@ -603,7 +603,7 @@ + oldptr[i] = (short) src->Numbers[i]; + } + } +- } else if ((mode == dstINT) && (newptr != 0)) { ++ } else if ((mode == dstINT) && (newptr != NULL)) { + DEBUG(2, ("...copy short ->int")); + for (i = 0; i < NUM_NUMBERS(dst); ++i) { + newptr[i] = ((const short *) (src->Numbers))[i]; +@@ -672,7 +672,7 @@ + } + } + } else { +- dst->ext_Names = 0; ++ dst->ext_Names = NULL; + } + #endif + (void) new_table_size; +Index: ncurses/tinfo/captoinfo.c +Prereq: 1.104 +--- ncurses-6.5-20241130+/ncurses/tinfo/captoinfo.c 2024-10-19 21:18:54.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/captoinfo.c 2024-12-07 21:12:53.000000000 +0000 +@@ -98,7 +98,7 @@ + #include <ctype.h> + #include <tic.h> + +-MODULE_ID("$Id: captoinfo.c,v 1.104 2024/10/19 21:18:54 tom Exp $") ++MODULE_ID("$Id: captoinfo.c,v 1.105 2024/12/07 21:12:53 tom Exp $") + + #if 0 + #define DEBUG_THIS(p) DEBUG(9, p) +@@ -124,7 +124,7 @@ + init_string(void) + /* initialize 'my_string', 'my_length' */ + { +- if (my_string == 0) ++ if (my_string == NULL) + TYPE_MALLOC(char, my_length = 256, my_string); + + *my_string = '\0'; +@@ -138,7 +138,7 @@ + size_t need = have + strlen(s) + 2; + if (need > my_length) { + my_string = (char *) _nc_doalloc(my_string, my_length = (need + need)); +- if (my_string == 0) ++ if (my_string == NULL) + _nc_err_abort(MSG_NO_MEMORY); + d = my_string + have; + } +@@ -313,8 +313,8 @@ + dp = init_string(); + + /* skip the initial padding (if we haven't been told not to) */ +- capstart = 0; +- if (s == 0) ++ capstart = NULL; ++ if (s == NULL) + s = ""; + if (parameterized >= 0 && isdigit(UChar(*s))) + for (capstart = s; *s != '\0'; s++) +@@ -619,7 +619,7 @@ + { + int seenone = 0, seentwo = 0, saw_m = 0, saw_n = 0; + const char *padding; +- const char *trimmed = 0; ++ const char *trimmed = NULL; + int in0, in1, in2; + char ch1 = 0, ch2 = 0; + char *bufptr = init_string(); +@@ -655,9 +655,9 @@ + + for (; !syntax_error && + *str && +- ((trimmed == 0) || (str < trimmed)); str++) { ++ ((trimmed == NULL) || (str < trimmed)); str++) { + int c1, c2; +- char *cp = 0; ++ char *cp = NULL; + + if (str[0] == '^') { + if (str[1] == '\0' || (str + 1) == trimmed) { +@@ -743,7 +743,7 @@ + ++myfix; + } + } +- } else if (strchr("E\\nrtbf", xx1) == 0) { ++ } else if (strchr("E\\nrtbf", xx1) == NULL) { + switch (xx1) { + case 'e': + xx1 = 'E'; +@@ -814,7 +814,7 @@ + && ((in0 == 4 && in1 == 10 && in2 == 48) + || (in0 == 3 && in1 == 9 && in2 == 38))) { + /* dumb-down an optimized case from xterm-256color for termcap */ +- if ((str = strstr(str, ";m")) == 0) ++ if ((str = strstr(str, ";m")) == NULL) + break; /* cannot happen */ + ++str; + if (in2 == 48) { +@@ -981,7 +981,7 @@ + * but that may not be the end of the string. + */ + assert(str != 0); +- if (str == 0 || *str == '\0') ++ if (str == NULL || *str == '\0') + break; + + } /* endwhile (*str) */ +@@ -1050,7 +1050,7 @@ + NCURSES_EXPORT(void) + _nc_captoinfo_leaks(void) + { +- if (my_string != 0) { ++ if (my_string != NULL) { + FreeAndNull(my_string); + } + my_length = 0; +Index: ncurses/tinfo/comp_error.c +Prereq: 1.44 +--- ncurses-6.5-20241130+/ncurses/tinfo/comp_error.c 2023-06-15 20:27:02.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/comp_error.c 2024-12-07 20:04:23.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2019-2020,2023 Thomas E. Dickey * ++ * Copyright 2019-2023,2024 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.44 2023/06/15 20:27:02 tom Exp $") ++MODULE_ID("$Id: comp_error.c,v 1.45 2024/12/07 20:04:23 tom Exp $") + + NCURSES_EXPORT_VAR(bool) _nc_suppress_warnings = FALSE; + NCURSES_EXPORT_VAR(int) _nc_curr_line = 0; /* current line # in input */ +@@ -75,9 +75,9 @@ + _nc_set_type(const char *const name) + { + #define MY_SIZE (size_t) MAX_NAME_SIZE +- if (TermType == 0) ++ if (TermType == NULL) + TermType = typeMalloc(char, MY_SIZE + 1); +- if (TermType != 0) { ++ if (TermType != NULL) { + TermType[0] = '\0'; + if (name) { + _nc_STRNCAT(TermType, name, MY_SIZE, MY_SIZE); +@@ -89,13 +89,13 @@ + _nc_get_type(char *name) + { + #if NO_LEAKS +- if (name == 0 && TermType != 0) { ++ if (name == NULL && TermType != NULL) { + FreeAndNull(TermType); + return; + } + #endif +- if (name != 0) +- _nc_STRCPY(name, TermType != 0 ? TermType : "", MAX_NAME_SIZE); ++ if (name != NULL) ++ _nc_STRCPY(name, TermType != NULL ? TermType : "", MAX_NAME_SIZE); + } + + static NCURSES_INLINE void +@@ -106,7 +106,7 @@ + fprintf(stderr, ", line %d", _nc_curr_line); + if (_nc_curr_col > 0) + fprintf(stderr, ", col %d", _nc_curr_col); +- if (TermType != 0 && TermType[0] != '\0') ++ if (TermType != NULL && TermType[0] != '\0') + fprintf(stderr, ", terminal '%s'", TermType); + fputc(':', stderr); + fputc(' ', stderr); +Index: ncurses/tinfo/comp_expand.c +Prereq: 1.36 +--- ncurses-6.5-20241130+/ncurses/tinfo/comp_expand.c 2024-11-30 21:24:57.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/comp_expand.c 2024-12-07 21:12:53.000000000 +0000 +@@ -36,7 +36,7 @@ + #include <ctype.h> + #include <tic.h> + +-MODULE_ID("$Id: comp_expand.c,v 1.36 2024/11/30 21:24:57 tom Exp $") ++MODULE_ID("$Id: comp_expand.c,v 1.37 2024/12/07 21:12:53 tom Exp $") + + #if 0 + #define DEBUG_THIS(p) DEBUG(9, p) +@@ -73,18 +73,18 @@ + int offset; + } fixups[MAX_TC_FIXUPS]; + +- if (srcp == 0) { ++ if (srcp == NULL) { + #if NO_LEAKS +- if (buffer != 0) { ++ if (buffer != NULL) { + FreeAndNull(buffer); + length = 0; + } + #endif +- return 0; ++ return NULL; + } +- if (buffer == 0 || need > length) { +- if ((buffer = typeRealloc(char, length = need, buffer)) == 0) +- return 0; ++ if (buffer == NULL || need > length) { ++ if ((buffer = typeRealloc(char, length = need, buffer)) == NULL) ++ return NULL; + } + + DEBUG_THIS(("_nc_tic_expand %s:%s:%s", +@@ -124,9 +124,9 @@ + case 1: + if (str[0] == L_BRACE + && isdigit(UChar(str[1]))) { +- char *dst = 0; ++ char *dst = NULL; + long value = strtol(str + 1, &dst, 0); +- if (dst != 0 ++ if (dst != NULL + && *dst == R_BRACE + && value < 127 + && isprint(UChar(value))) { +Index: ncurses/tinfo/comp_hash.c +Prereq: 1.55 +--- ncurses-6.5-20241130+/ncurses/tinfo/comp_hash.c 2023-06-24 13:29:43.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/comp_hash.c 2024-12-07 20:05:08.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2019-2020,2023 Thomas E. Dickey * ++ * Copyright 2019-2023,2024 Thomas E. Dickey * + * Copyright 1998-2008,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -45,7 +45,7 @@ + #include <tic.h> + #include <hashsize.h> + +-MODULE_ID("$Id: comp_hash.c,v 1.55 2023/06/24 13:29:43 tom Exp $") ++MODULE_ID("$Id: comp_hash.c,v 1.56 2024/12/07 20:05:08 tom Exp $") + + /* + * Finds the entry for the given string in the hash table if present. +@@ -58,7 +58,7 @@ + bool termcap = (hash_table != _nc_get_hash_table(FALSE)); + const HashData *data = _nc_get_hash_info(termcap); + int hashvalue; +- struct name_table_entry const *ptr = 0; ++ struct name_table_entry const *ptr = NULL; + struct name_table_entry const *real_table; + + hashvalue = data->hash_of(string); +@@ -71,7 +71,7 @@ + ptr = real_table + data->table_data[hashvalue]; + while (!data->compare_names(ptr->nte_name, string)) { + if (ptr->nte_link < 0) { +- ptr = 0; ++ ptr = NULL; + break; + } + ptr = real_table + (ptr->nte_link +@@ -108,7 +108,7 @@ + while (ptr->nte_type != type + || !data->compare_names(ptr->nte_name, string)) { + if (ptr->nte_link < 0) { +- ptr = 0; ++ ptr = NULL; + break; + } + ptr = table + (ptr->nte_link + data->table_data[data->table_size]); +@@ -125,7 +125,7 @@ + { + const HashData *data = _nc_get_hash_user(); + int hashvalue; +- struct user_table_entry const *ptr = 0; ++ struct user_table_entry const *ptr = NULL; + struct user_table_entry const *real_table; + + hashvalue = data->hash_of(string); +@@ -138,7 +138,7 @@ + ptr = real_table + data->table_data[hashvalue]; + while (!data->compare_names(ptr->ute_name, string)) { + if (ptr->ute_link < 0) { +- ptr = 0; ++ ptr = NULL; + break; + } + ptr = real_table + (ptr->ute_link +Index: ncurses/tinfo/comp_parse.c +Prereq: 1.135 +--- ncurses-6.5-20241130+/ncurses/tinfo/comp_parse.c 2024-07-27 19:15:16.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/comp_parse.c 2024-12-07 21:12:53.000000000 +0000 +@@ -48,7 +48,7 @@ + + #include <tic.h> + +-MODULE_ID("$Id: comp_parse.c,v 1.135 2024/07/27 19:15:16 tom Exp $") ++MODULE_ID("$Id: comp_parse.c,v 1.136 2024/12/07 21:12:53 tom Exp $") + + static void sanity_check2(TERMTYPE2 *, bool); + NCURSES_IMPEXP void (NCURSES_API *_nc_check_termtype2) (TERMTYPE2 *, bool) = sanity_check2; +@@ -64,13 +64,13 @@ + DEBUG(2, (T_CALLED("enqueue(ep=%p)"), (void *) ep)); + + newp = _nc_copy_entry(ep); +- if (newp == 0) ++ if (newp == NULL) + _nc_err_abort(MSG_NO_MEMORY); + + newp->last = _nc_tail; + _nc_tail = newp; + +- newp->next = 0; ++ newp->next = NULL; + if (newp->last) + newp->last->next = newp; + DEBUG(2, (T_RETURN(""))); +@@ -81,7 +81,7 @@ + static char * + force_bar(char *dst, char *src) + { +- if (strchr(src, '|') == 0) { ++ if (strchr(src, '|') == NULL) { + size_t len = strlen(src); + if (len > MAX_NAME_SIZE) + len = MAX_NAME_SIZE; +@@ -91,7 +91,7 @@ + } + return src; + } +-#define ForceBar(dst, src) ((strchr(src, '|') == 0) ? force_bar(dst, src) : src) ++#define ForceBar(dst, src) ((strchr(src, '|') == NULL) ? force_bar(dst, src) : src) + + #if NCURSES_USE_TERMCAP && NCURSES_XNAMES + static char * +@@ -152,7 +152,7 @@ + name_ending(char *name) + { + if (*name == '\0') { +- name = 0; ++ name = NULL; + } else { + while (*name != '\0' && *name != '|') + ++name; +@@ -403,7 +403,7 @@ + _nc_resolve_uses2(bool fullresolve, bool literal) + /* try to resolve all use capabilities */ + { +- ENTRY *qp, *rp, *lastread = 0; ++ ENTRY *qp, *rp, *lastread = NULL; + bool keepgoing; + unsigned i, j; + int total_unresolved, multiples; +@@ -452,7 +452,7 @@ + char *lookfor = qp->uses[i].name; + long lookline = qp->uses[i].line; + +- if (lookfor == 0) ++ if (lookfor == NULL) + continue; + + foundit = FALSE; +@@ -518,7 +518,7 @@ + + _nc_curr_line = (int) lookline; + _nc_warning("resolution of use=%s failed", lookfor); +- qp->uses[i].link = 0; ++ qp->uses[i].link = NULL; + } + } + } +@@ -758,7 +758,7 @@ + _nc_names_leaks(); + _nc_codes_leaks(); + #endif +- _nc_tic_expand(0, FALSE, 0); ++ _nc_tic_expand(NULL, FALSE, 0); + T((T_RETURN(""))); + } + +Index: ncurses/tinfo/comp_scan.c +Prereq: 1.124 +--- ncurses-6.5-20241130+/ncurses/tinfo/comp_scan.c 2024-11-23 18:45:01.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/comp_scan.c 2024-12-07 21:17:54.000000000 +0000 +@@ -51,7 +51,7 @@ + #include <ctype.h> + #include <tic.h> + +-MODULE_ID("$Id: comp_scan.c,v 1.124 2024/11/23 18:45:01 tom Exp $") ++MODULE_ID("$Id: comp_scan.c,v 1.125 2024/12/07 21:17:54 tom Exp $") + + /* + * Maximum length of string capability we'll accept before raising an error. +@@ -70,7 +70,7 @@ + + NCURSES_EXPORT_VAR (struct token) _nc_curr_token = + { +- 0, 0, 0 ++ NULL, 0, NULL + }; + + /***************************************************************************** +@@ -116,12 +116,12 @@ + (T_CALLED("_nc_reset_input(fp=%p, buf=%p)"), (void *) fp, buf)); + + pushtype = NO_PUSHBACK; +- if (pushname != 0) ++ if (pushname != NULL) + pushname[0] = '\0'; + yyin = fp; + bufstart = bufptr = buf; + _nc_curr_file_pos = 0L; +- if (fp != 0) ++ if (fp != NULL) + _nc_curr_line = 0; + _nc_curr_col = 0; + +@@ -197,18 +197,18 @@ + int the_char; + + if (!yyin) { +- if (result != 0) { ++ if (result != NULL) { + FreeAndNull(result); + FreeAndNull(pushname); +- bufptr = 0; +- bufstart = 0; ++ bufptr = NULL; ++ bufstart = NULL; + allocated = 0; + } + /* + * An string with an embedded null will truncate the input. This is + * intentional (we don't read binary files here). + */ +- if (bufptr == 0 || *bufptr == '\0') ++ if (bufptr == NULL || *bufptr == '\0') + return (EOF); + if (*bufptr == '\n') { + _nc_curr_line++; +@@ -227,12 +227,12 @@ + + do { + size_t used = 0; +- bufstart = 0; ++ bufstart = NULL; + do { + if (used + (LEXBUFSIZ / 4) >= allocated) { + allocated += (allocated + LEXBUFSIZ); + result = typeRealloc(char, allocated, result); +- if (result == 0) ++ if (result == NULL) + return (EOF); + if (bufstart) + bufstart = result; +@@ -254,7 +254,7 @@ + if (used != 0) + _nc_STRCAT(result, "\n", allocated); + } +- if ((bufptr = bufstart) != 0) { ++ if ((bufptr = bufstart) != NULL) { + used = strlen(bufptr); + if (used == 0) + return (EOF); +@@ -407,12 +407,12 @@ + if (pushtype != NO_PUSHBACK) { + int retval = pushtype; + +- _nc_set_type(pushname != 0 ? pushname : ""); ++ _nc_set_type(pushname != NULL ? pushname : ""); + DEBUG(3, ("pushed-back token: `%s', class %d", + _nc_curr_token.tk_name, pushtype)); + + pushtype = NO_PUSHBACK; +- if (pushname != 0) ++ if (pushname != NULL) + pushname[0] = '\0'; + + /* currtok wasn't altered by _nc_push_token() */ +@@ -421,11 +421,11 @@ + } + + if (end_of_stream()) { +- yyin = 0; ++ yyin = NULL; + (void) next_char(); /* frees its allocated memory */ +- if (tok_buf != 0) { ++ if (tok_buf != NULL) { + if (_nc_curr_token.tk_name == tok_buf) +- _nc_curr_token.tk_name = 0; ++ _nc_curr_token.tk_name = NULL; + } + DEBUG(3, (T_RETURN("%d"), EOF)); + return (EOF); +@@ -439,7 +439,7 @@ + } + + ch = eat_escaped_newline(ch); +- _nc_curr_token.tk_valstring = 0; ++ _nc_curr_token.tk_valstring = NULL; + + #ifdef TRACE + old_line = _nc_curr_line; +@@ -475,7 +475,7 @@ + #if NCURSES_EXT_FUNCS + && !(ch == '.' && _nc_disable_period) + #endif +- && ((strchr) (terminfo_punct, (char) ch) == 0)) { ++ && ((strchr) (terminfo_punct, (char) ch) == NULL)) { + if (!silent) + _nc_warning("Illegal character (expected alphanumeric or %s) - '%s'", + terminfo_punct, unctrl(UChar(ch))); +@@ -483,7 +483,7 @@ + goto start_token; + } + +- if (tok_buf == 0) ++ if (tok_buf == NULL) + tok_buf = typeMalloc(char, TOK_BUF_SIZE); + + #ifdef TRACE +@@ -499,14 +499,14 @@ + _nc_start_line = _nc_curr_line; + + _nc_syntax = ERR; +- after_name = 0; +- after_list = 0; ++ after_name = NULL; ++ after_list = NULL; + while ((ch = next_char()) != '\n') { + if (ch == EOF) { + _nc_err_abort(MSG_NO_INPUTS); + } else if (ch == '|') { + after_list = tok_ptr; +- if (after_name == 0) ++ if (after_name == NULL) + after_name = tok_ptr; + } else if (ch == ':' && last_char(0) != ',') { + _nc_syntax = SYN_TERMCAP; +@@ -519,7 +519,7 @@ + * If we did not see a '|', then we found a name with no + * aliases or description. + */ +- if (after_name == 0) ++ if (after_name == NULL) + break; + /* + * We saw a comma, but are not entirely sure this is +@@ -614,7 +614,7 @@ + * for following warning messages. If there's no '|', then there + * is no description. + */ +- if (after_name != 0) { ++ if (after_name != NULL) { + ch = *after_name; + *after_name = '\0'; + _nc_set_type(tok_buf); +@@ -625,11 +625,11 @@ + * Compute the boundary between the aliases and the description + * field for syntax-checking purposes. + */ +- if (after_list != 0) { ++ if (after_list != NULL) { + if (!silent) { + if (*after_list == '\0' || strchr("|", after_list[1]) != NULL) { + _nc_warning("empty longname field"); +- } else if (strchr(after_list, ' ') == 0) { ++ } else if (strchr(after_list, ' ') == NULL) { + _nc_warning("older tic versions may treat the description field as an alias"); + } + } +@@ -805,7 +805,7 @@ + type = _nc_get_token(silent); + + DEBUG(3, ("token: `%s', class %d", +- ((_nc_curr_token.tk_name != 0) ++ ((_nc_curr_token.tk_name != NULL) + ? _nc_curr_token.tk_name + : "<null>"), + type)); +@@ -1023,12 +1023,12 @@ + * _nc_get_token() touches. + */ + pushtype = tokclass; +- if (pushname == 0) ++ if (pushname == NULL) + pushname = typeMalloc(char, MAX_NAME_SIZE + 1); + _nc_get_type(pushname); + + DEBUG(3, ("pushing token: `%s', class %d", +- ((_nc_curr_token.tk_name != 0) ++ ((_nc_curr_token.tk_name != NULL) + ? _nc_curr_token.tk_name + : "<null>"), + pushtype)); +@@ -1053,10 +1053,10 @@ + NCURSES_EXPORT(void) + _nc_comp_scan_leaks(void) + { +- if (pushname != 0) { ++ if (pushname != NULL) { + FreeAndNull(pushname); + } +- if (tok_buf != 0) { ++ if (tok_buf != NULL) { + FreeAndNull(tok_buf); + } + } +Index: ncurses/tinfo/db_iterator.c +Prereq: 1.51 +--- ncurses-6.5-20241130+/ncurses/tinfo/db_iterator.c 2024-07-27 19:22:23.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/db_iterator.c 2024-12-07 18:23:25.000000000 +0000 +@@ -44,7 +44,7 @@ + #include <hashed_db.h> + #endif + +-MODULE_ID("$Id: db_iterator.c,v 1.51 2024/07/27 19:22:23 tom Exp $") ++MODULE_ID("$Id: db_iterator.c,v 1.52 2024/12/07 18:23:25 tom Exp $") + + #define HaveTicDirectory _nc_globals.have_tic_directory + #define KeepTicDirectory _nc_globals.keep_tic_directory +@@ -127,12 +127,12 @@ + const char *cached_value = my_vars[which].value; + bool same_value; + +- if ((value = getenv(name)) != 0) { ++ if ((value = getenv(name)) != NULL) { + value = strdup(value); + } +- same_value = ((value == 0 && cached_value == 0) || +- (value != 0 && +- cached_value != 0 && ++ same_value = ((value == NULL && cached_value == NULL) || ++ (value != NULL && ++ cached_value != NULL && + strcmp(value, cached_value) == 0)); + + /* Set variable name to enable checks in cache_expired(). */ +@@ -153,7 +153,7 @@ + static char * + cache_getenv(const char *name, DBDIRS which) + { +- char *result = 0; ++ char *result = NULL; + + (void) update_getenv(name, which); + if (which < dbdLAST) { +@@ -185,7 +185,7 @@ + } else { + DBDIRS n; + for (n = (DBDIRS) 0; n < dbdLAST; ++n) { +- if (my_vars[n].name != 0 ++ if (my_vars[n].name != NULL + && update_getenv(my_vars[n].name, n)) { + result = TRUE; + break; +@@ -225,7 +225,7 @@ + } else if (HaveTicDirectory == 0) { + if (use_terminfo_vars()) { + const char *envp; +- if ((envp = getenv("TERMINFO")) != 0) ++ if ((envp = getenv("TERMINFO")) != NULL) + return _nc_tic_dir(envp); + } + } +@@ -251,7 +251,7 @@ + NCURSES_EXPORT(void) + _nc_last_db(void) + { +- if (my_blob != 0 && cache_expired()) { ++ if (my_blob != NULL && cache_expired()) { + free_cache(); + } + } +@@ -268,14 +268,14 @@ + + (void) offset; + if ((int) *state < my_size +- && my_list != 0 +- && my_list[*state] != 0) { ++ && my_list != NULL ++ && my_list[*state] != NULL) { + result = my_list[*state]; + (*state)++; + } else { +- result = 0; ++ result = NULL; + } +- if (result != 0) { ++ if (result != NULL) { + T(("_nc_next_db %d %s", *state, result)); + } + return result; +@@ -293,7 +293,7 @@ + /* build a blob containing all of the strings we will use for a lookup + * table. + */ +- if (my_blob == 0 || (cache_has_expired = cache_expired())) { ++ if (my_blob == NULL || (cache_has_expired = cache_expired())) { + size_t blobsize = 0; + const char *values[dbdLAST]; + struct stat *my_stat; +@@ -303,7 +303,7 @@ + free_cache(); + + for (j = 0; j < dbdLAST; ++j) +- values[j] = 0; ++ values[j] = NULL; + + /* + * This is the first item in the list, and is used only when tic is +@@ -344,13 +344,13 @@ + } + + for (j = 0; j < dbdLAST; ++j) { +- if (values[j] == 0) ++ if (values[j] == NULL) + values[j] = ""; + blobsize += 2 + strlen(values[j]); + } + + my_blob = malloc(blobsize); +- if (my_blob != 0) { ++ if (my_blob != NULL) { + *my_blob = '\0'; + for (j = 0; j < dbdLAST; ++j) { + add_to_blob(values[j], blobsize); +@@ -366,7 +366,7 @@ + } + my_list = typeCalloc(char *, blobsize); + my_stat = typeCalloc(struct stat, blobsize); +- if (my_list != 0 && my_stat != 0) { ++ if (my_list != NULL && my_stat != NULL) { + int k = 0; + my_list[k++] = my_blob; + for (j = 0; my_blob[j] != '\0'; ++j) { +@@ -381,11 +381,11 @@ + /* + * Eliminate duplicates from the list. + */ +- for (j = 0; my_list[j] != 0; ++j) { ++ for (j = 0; my_list[j] != NULL; ++j) { + #ifdef TERMINFO + if (*my_list[j] == '\0') { + char *my_copy = strdup(TERMINFO); +- if (my_copy != 0) ++ if (my_copy != NULL) + my_list[j] = my_copy; + } + #endif +@@ -394,7 +394,7 @@ + if (!strcmp(my_list[j], my_list[k])) { + T(("duplicate %s", my_list[j])); + k = j - 1; +- while ((my_list[j] = my_list[j + 1]) != 0) { ++ while ((my_list[j] = my_list[j + 1]) != NULL) { + ++j; + } + j = k; +@@ -407,7 +407,7 @@ + * Eliminate non-existent databases, and those that happen to + * be symlinked to another location. + */ +- for (j = 0; my_list[j] != 0; ++j) { ++ for (j = 0; my_list[j] != NULL; ++j) { + bool found = check_existence(my_list[j], &my_stat[j]); + #if HAVE_LINK + if (found) { +@@ -423,7 +423,7 @@ + if (!found) { + T(("not found %s", my_list[j])); + k = j; +- while ((my_list[k] = my_list[k + 1]) != 0) { ++ while ((my_list[k] = my_list[k + 1]) != NULL) { + ++k; + } + --j; +@@ -446,14 +446,14 @@ + { + DBDIRS which; + +- if (my_blob != 0) ++ if (my_blob != NULL) + FreeAndNull(my_blob); +- if (my_list != 0) ++ if (my_list != NULL) + FreeAndNull(my_list); + for (which = 0; (int) which < dbdLAST; ++which) { +- my_vars[which].name = 0; ++ my_vars[which].name = NULL; + FreeIfNeeded(my_vars[which].value); +- my_vars[which].value = 0; ++ my_vars[which].value = NULL; + } + update_tic_dir(NULL); + } +Index: ncurses/tinfo/doalloc.c +Prereq: 1.14 +--- ncurses-6.5-20241130+/ncurses/tinfo/doalloc.c 2021-04-24 23:43:39.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/doalloc.c 2024-12-07 20:05:08.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020,2021 Thomas E. Dickey * ++ * Copyright 2020-2021,2024 Thomas E. Dickey * + * Copyright 1998-2002,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -40,7 +40,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: doalloc.c,v 1.14 2021/04/24 23:43:39 tom Exp $") ++MODULE_ID("$Id: doalloc.c,v 1.15 2024/12/07 20:05:08 tom Exp $") + + void * + _nc_doalloc(void *oldp, size_t amount) +@@ -51,7 +51,7 @@ + if (amount == 0) { + free(oldp); + newp = NULL; +- } else if ((newp = realloc(oldp, amount)) == 0) { ++ } else if ((newp = realloc(oldp, amount)) == NULL) { + free(oldp); + errno = ENOMEM; /* just in case 'free' reset */ + } +Index: ncurses/tinfo/entries.c +Prereq: 1.37 +--- ncurses-6.5-20241130+/ncurses/tinfo/entries.c 2024-10-19 21:23:31.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/entries.c 2024-12-07 18:23:25.000000000 +0000 +@@ -38,7 +38,7 @@ + + #include <tic.h> + +-MODULE_ID("$Id: entries.c,v 1.37 2024/10/19 21:23:31 tom Exp $") ++MODULE_ID("$Id: entries.c,v 1.38 2024/12/07 18:23:25 tom Exp $") + + /**************************************************************************** + * +@@ -61,8 +61,8 @@ + * _nc_head _nc_tail + */ + +-NCURSES_EXPORT_VAR(ENTRY *) _nc_head = 0; +-NCURSES_EXPORT_VAR(ENTRY *) _nc_tail = 0; ++NCURSES_EXPORT_VAR(ENTRY *) _nc_head = NULL; ++NCURSES_EXPORT_VAR(ENTRY *) _nc_tail = NULL; + + static ENTRY * + _nc_delink_entry(ENTRY * headp, const TERMTYPE2 *const tterm) +@@ -70,12 +70,12 @@ + { + ENTRY *ep, *last; + +- for (last = 0, ep = headp; ep != 0; last = ep, ep = ep->next) { ++ for (last = NULL, ep = headp; ep != NULL; last = ep, ep = ep->next) { + if (&(ep->tterm) == tterm) { +- if (last != 0) { ++ if (last != NULL) { + last->next = ep->next; + } +- if (ep->next != 0) { ++ if (ep->next != NULL) { + ep->next->last = last; + } + if (ep == _nc_head) { +@@ -96,7 +96,7 @@ + { + ENTRY *ep; + +- if ((ep = _nc_delink_entry(headp, tterm)) != 0) { ++ if ((ep = _nc_delink_entry(headp, tterm)) != NULL) { + free(ep); + } + } +@@ -107,7 +107,7 @@ + { + (void) headp; /* unused - _nc_head is altered here! */ + +- while (_nc_head != 0) { ++ while (_nc_head != NULL) { + _nc_free_termtype2(&(_nc_head->tterm)); + } + } +@@ -141,7 +141,7 @@ + } + _nc_unlock_global(screen); + #endif +- if (TerminalOf(CURRENT_SCREEN) != 0) { ++ if (TerminalOf(CURRENT_SCREEN) != NULL) { + del_curterm(TerminalOf(CURRENT_SCREEN)); + } + _nc_forget_prescr(); +@@ -149,8 +149,8 @@ + _nc_comp_captab_leaks(); + _nc_comp_userdefs_leaks(); + _nc_free_entries(_nc_head); +- _nc_get_type(0); +- _nc_first_name(0); ++ _nc_get_type(NULL); ++ _nc_first_name(NULL); + _nc_db_iterator_leaks(); + _nc_keyname_leaks(); + #if BROKEN_LINKER || USE_REENTRANT +@@ -160,7 +160,7 @@ + #endif + _nc_comp_error_leaks(); + +- if ((s = _nc_home_terminfo()) != 0) ++ if ((s = _nc_home_terminfo()) != NULL) + free(s); + + #ifdef TRACE +Index: ncurses/tinfo/getenv_num.c +Prereq: 1.9 +--- ncurses-6.5-20241130+/ncurses/tinfo/getenv_num.c 2024-07-27 19:23:59.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/getenv_num.c 2024-12-07 18:14:49.000000000 +0000 +@@ -37,16 +37,16 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: getenv_num.c,v 1.9 2024/07/27 19:23:59 tom Exp $") ++MODULE_ID("$Id: getenv_num.c,v 1.10 2024/12/07 18:14:49 tom Exp $") + + NCURSES_EXPORT(int) + _nc_getenv_num(const char *name) + { +- char *dst = 0; ++ char *dst = NULL; + const char *src = getenv(name); + long value; + +- if ((src == 0) ++ if ((src == NULL) + || (value = strtol(src, &dst, 0)) < 0 + || (dst == src) + || (*dst != '\0') +@@ -59,7 +59,7 @@ + NCURSES_EXPORT(void) + _nc_setenv_num(const char *name, int value) + { +- if (name != 0 && value >= 0) { ++ if (name != NULL && value >= 0) { + char buffer[128]; + #if HAVE_SETENV + _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) "%d", value); +Index: ncurses/tinfo/home_terminfo.c +Prereq: 1.18 +--- ncurses-6.5-20241130+/ncurses/tinfo/home_terminfo.c 2024-07-27 19:23:21.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/home_terminfo.c 2024-12-07 18:14:49.000000000 +0000 +@@ -38,7 +38,7 @@ + #include <curses.priv.h> + #include <tic.h> + +-MODULE_ID("$Id: home_terminfo.c,v 1.18 2024/07/27 19:23:21 tom Exp $") ++MODULE_ID("$Id: home_terminfo.c,v 1.19 2024/12/07 18:14:49 tom Exp $") + + /* ncurses extension...fall back on user's private directory */ + +@@ -47,14 +47,14 @@ + NCURSES_EXPORT(char *) + _nc_home_terminfo(void) + { +- char *result = 0; ++ char *result = NULL; + #if USE_HOME_TERMINFO + if (use_terminfo_vars()) { + +- if (MyBuffer == 0) { ++ if (MyBuffer == NULL) { + const char *home; + +- if ((home = getenv("HOME")) != 0) { ++ if ((home = getenv("HOME")) != NULL) { + size_t want = (strlen(home) + sizeof(PRIVATE_INFO)); + TYPE_MALLOC(char, want, MyBuffer); + _nc_SPRINTF(MyBuffer, _nc_SLIMIT(want) PRIVATE_INFO, home); +Index: ncurses/tinfo/init_keytry.c +Prereq: 1.21 +--- ncurses-6.5-20241130+/ncurses/tinfo/init_keytry.c 2024-07-27 19:23:59.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/init_keytry.c 2024-12-07 18:14:49.000000000 +0000 +@@ -30,7 +30,7 @@ + #include <curses.priv.h> + #include <tic.h> /* struct tinfo_fkeys */ + +-MODULE_ID("$Id: init_keytry.c,v 1.21 2024/07/27 19:23:59 tom Exp $") ++MODULE_ID("$Id: init_keytry.c,v 1.22 2024/12/07 18:14:49 tom Exp $") + + /* + ** _nc_init_keytry() +@@ -74,7 +74,7 @@ + * mouse_activate() (which will call keyok()) are first called. + */ + +- if (sp != 0) { ++ if (sp != NULL) { + unsigned n; + + for (n = 0; _nc_tinfo_fkeys[n].code; n++) { +@@ -95,7 +95,7 @@ + for (n = STRCOUNT; n < NUM_STRINGS(tp); ++n) { + const char *name = ExtStrname(tp, (int) n, strnames); + const char *value = tp->Strings[n]; +- if (name != 0 ++ if (name != NULL + && *name == 'k' + && VALID_STRING(value) + && NCURSES_SP_NAME(key_defined) (NCURSES_SP_ARGx +Index: ncurses/tinfo/lib_acs.c +Prereq: 1.50 +--- ncurses-6.5-20241130+/ncurses/tinfo/lib_acs.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/lib_acs.c 2024-12-07 20:05:08.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2018-2019,2020 Thomas E. Dickey * ++ * Copyright 2018-2020,2024 Thomas E. Dickey * + * Copyright 1998-2014,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -40,7 +40,7 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_acs.c,v 1.50 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: lib_acs.c,v 1.51 2024/12/07 20:05:08 tom Exp $") + + #if BROKEN_LINKER || USE_REENTRANT + #define MyBuffer _nc_prescreen.real_acs_map +@@ -81,7 +81,7 @@ + NCURSES_SP_NAME(_nc_init_acs) (NCURSES_SP_DCL0) + { + chtype *fake_map = acs_map; +- chtype *real_map = SP_PARM != 0 ? SP_PARM->_acs_map : fake_map; ++ chtype *real_map = SP_PARM != NULL ? SP_PARM->_acs_map : fake_map; + int j; + + T(("initializing ACS map")); +@@ -183,7 +183,7 @@ + * + * test/blue.c uses this feature. + */ +-#define PCH_KLUDGE(a,b) (a != 0 && b != 0 && !strcmp(a,b)) ++#define PCH_KLUDGE(a,b) (a != NULL && b != NULL && !strcmp(a,b)) + if (PCH_KLUDGE(enter_pc_charset_mode, enter_alt_charset_mode) && + PCH_KLUDGE(exit_pc_charset_mode, exit_alt_charset_mode)) { + size_t i; +@@ -191,7 +191,7 @@ + if (real_map[i] == 0) { + real_map[i] = (chtype) i; + if (real_map != fake_map) { +- if (SP != 0) ++ if (SP != NULL) + SP->_screen_acs_map[i] = TRUE; + } + } +@@ -210,7 +210,7 @@ + (int) i, + _tracechar(UChar(acs_chars[i])), + _tracechtype(real_map[UChar(acs_chars[i])]))); +- if (SP != 0) { ++ if (SP != NULL) { + SP->_screen_acs_map[UChar(acs_chars[i])] = TRUE; + } + } +Index: ncurses/tinfo/lib_baudrate.c +Prereq: 1.45 +--- ncurses-6.5-20241130+/ncurses/tinfo/lib_baudrate.c 2020-09-05 21:15:32.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/lib_baudrate.c 2024-12-07 20:05:08.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -84,7 +84,7 @@ + #undef USE_OLD_TTY + #endif /* USE_OLD_TTY */ + +-MODULE_ID("$Id: lib_baudrate.c,v 1.45 2020/09/05 21:15:32 tom Exp $") ++MODULE_ID("$Id: lib_baudrate.c,v 1.46 2024/12/07 20:05:08 tom Exp $") + + /* + * int +@@ -279,7 +279,7 @@ + #ifdef TRACE + if (IsValidTIScreen(SP_PARM) + && !NC_ISATTY(fileno((SP_PARM && SP_PARM->_ofp) ? SP_PARM->_ofp : stdout)) +- && getenv("BAUDRATE") != 0) { ++ && getenv("BAUDRATE") != NULL) { + int ret; + if ((ret = _nc_getenv_num("BAUDRATE")) <= 0) + ret = 9600; +Index: ncurses/tinfo/lib_cur_term.c +Prereq: 1.49 +--- ncurses-6.5-20241130+/ncurses/tinfo/lib_cur_term.c 2022-05-28 17:56:55.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/lib_cur_term.c 2024-12-07 20:05:08.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +-,* Copyright 2020-2021,2022 Thomas E. Dickey * ++,* Copyright 2020-2022,2024 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -41,7 +41,7 @@ + #include <termcap.h> /* ospeed */ + #include <tic.h> /* VALID_STRING */ + +-MODULE_ID("$Id: lib_cur_term.c,v 1.49 2022/05/28 17:56:55 tom Exp $") ++MODULE_ID("$Id: lib_cur_term.c,v 1.50 2024/12/07 20:05:08 tom Exp $") + + #undef CUR + #define CUR TerminalType(termp). +@@ -74,7 +74,7 @@ + } + + #else +-NCURSES_EXPORT_VAR(TERMINAL *) cur_term = 0; ++NCURSES_EXPORT_VAR(TERMINAL *) cur_term = NULL; + #endif + + NCURSES_EXPORT(TERMINAL *) +@@ -93,7 +93,7 @@ + #else + cur_term = termp; + #endif +- if (termp != 0) { ++ if (termp != NULL) { + #ifdef USE_TERM_DRIVER + TERMINAL_CONTROL_BLOCK *TCB = (TERMINAL_CONTROL_BLOCK *) termp; + ospeed = (NCURSES_OSPEED) _nc_ospeed(termp->_baudrate); +@@ -134,7 +134,7 @@ + + T((T_CALLED("del_curterm(%p, %p)"), (void *) SP_PARM, (void *) termp)); + +- if (termp != 0) { ++ if (termp != NULL) { + #ifdef USE_TERM_DRIVER + TERMINAL_CONTROL_BLOCK *TCB = (TERMINAL_CONTROL_BLOCK *) termp; + #endif +@@ -155,11 +155,11 @@ + #endif + _nc_free_termtype2(&TerminalType(termp)); + if (termp == cur) +- NCURSES_SP_NAME(set_curterm) (NCURSES_SP_ARGx 0); ++ NCURSES_SP_NAME(set_curterm) (NCURSES_SP_ARGx NULL); + + FreeIfNeeded(termp->_termname); + #if USE_HOME_TERMINFO +- if (_nc_globals.home_terminfo != 0) { ++ if (_nc_globals.home_terminfo != NULL) { + FreeAndNull(_nc_globals.home_terminfo); + } + #endif +Index: ncurses/tinfo/lib_data.c +Prereq: 1.89 +--- ncurses-6.5-20241130+/ncurses/tinfo/lib_data.c 2024-02-24 18:11:38.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/lib_data.c 2024-12-07 18:23:25.000000000 +0000 +@@ -43,7 +43,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_data.c,v 1.89 2024/02/24 18:11:38 tom Exp $") ++MODULE_ID("$Id: lib_data.c,v 1.90 2024/12/07 18:23:25 tom Exp $") + + /* + * OS/2's native linker complains if we don't initialize public data when +@@ -66,12 +66,12 @@ + return CURRENT_SCREEN ? NewScreen(CURRENT_SCREEN) : 0; + } + #else +-NCURSES_EXPORT_VAR(WINDOW *) stdscr = 0; +-NCURSES_EXPORT_VAR(WINDOW *) curscr = 0; +-NCURSES_EXPORT_VAR(WINDOW *) newscr = 0; ++NCURSES_EXPORT_VAR(WINDOW *) stdscr = NULL; ++NCURSES_EXPORT_VAR(WINDOW *) curscr = NULL; ++NCURSES_EXPORT_VAR(WINDOW *) newscr = NULL; + #endif + +-NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain = 0; ++NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain = NULL; + + /* + * The variable 'SP' will be defined as a function on systems that cannot link +@@ -129,7 +129,7 @@ + + FALSE, /* have_tic_directory */ + FALSE, /* keep_tic_directory */ +- 0, /* tic_directory */ ++ NULL, /* tic_directory */ + + NULL, /* dbi_list */ + 0, /* dbi_size */ +@@ -150,11 +150,11 @@ + 0, /* tgetent_sequence */ + 0, /* terminal_count */ + +- 0, /* dbd_blob */ +- 0, /* dbd_list */ ++ NULL, /* dbd_blob */ ++ NULL, /* dbd_list */ + 0, /* dbd_size */ + 0, /* dbd_time */ +- { { 0, 0 } }, /* dbd_vars */ ++ { { NULL, NULL } }, /* dbd_vars */ + + #if HAVE_TSEARCH + NULL, /* cached_tparm */ +@@ -230,7 +230,7 @@ + #define STACK_FRAME_0s { STACK_FRAME_0 } + #define NUM_VARS_0s { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } + +-#define RIPOFF_0 { 0,0,0 } ++#define RIPOFF_0 { NULL,0,NULL } + #define RIPOFF_0s { RIPOFF_0 } + + NCURSES_EXPORT_VAR(NCURSES_PRESCREEN) _nc_prescreen = { +@@ -258,7 +258,7 @@ + }, + NULL, /* saved_tty */ + FALSE, /* use_tioctl */ +- 0, /* _outch */ ++ NULL, /* _outch */ + #ifndef USE_SP_RIPOFF + RIPOFF_0s, /* ripoff */ + NULL, /* rsp */ +@@ -291,9 +291,9 @@ + NCURSES_EXPORT(SCREEN *) + _nc_screen_of(WINDOW *win) + { +- SCREEN *sp = 0; ++ SCREEN *sp = NULL; + +- if (win != 0) { ++ if (win != NULL) { + sp = WINDOW_EXT(win, screen); + } + return (sp); +Index: ncurses/tinfo/lib_kernel.c +Prereq: 1.36 +--- ncurses-6.5-20241130+/ncurses/tinfo/lib_kernel.c 2023-06-10 13:29:06.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/lib_kernel.c 2024-12-07 20:05:08.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020-2022,2023 Thomas E. Dickey * ++ * Copyright 2020-2023,2024 Thomas E. Dickey * + * Copyright 1998-2009,2010 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -49,7 +49,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_kernel.c,v 1.36 2023/06/10 13:29:06 tom Exp $") ++MODULE_ID("$Id: lib_kernel.c,v 1.37 2024/12/07 20:05:08 tom Exp $") + + #ifdef TERMIOS + static int +@@ -89,7 +89,7 @@ + + T((T_CALLED("erasechar(%p)"), (void *) SP_PARM)); + +- if (termp != 0) { ++ if (termp != NULL) { + #ifdef TERMIOS + result = termp->Ottyb.c_cc[VERASE]; + if (result == _nc_vdisable()) +@@ -126,7 +126,7 @@ + + T((T_CALLED("killchar(%p)"), (void *) SP_PARM)); + +- if (termp != 0) { ++ if (termp != NULL) { + #ifdef TERMIOS + result = termp->Ottyb.c_cc[VKILL]; + if (result == _nc_vdisable()) +@@ -177,7 +177,7 @@ + { + T((T_CALLED("flushinp(%p)"), (void *) SP_PARM)); + +- if (SP_PARM != 0) { ++ if (SP_PARM != NULL) { + if (NC_ISATTY(SP_PARM->_ifd)) + flush_input(SP_PARM->_ifd); + else if (NC_ISATTY(SP_PARM->_ofd)) +Index: ncurses/tinfo/lib_options.c +Prereq: 1.84 +--- ncurses-6.5-20241130+/ncurses/tinfo/lib_options.c 2024-11-23 19:17:25.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/lib_options.c 2024-12-07 18:24:47.000000000 +0000 +@@ -47,7 +47,7 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_options.c,v 1.84 2024/11/23 19:17:25 tom Exp $") ++MODULE_ID("$Id: lib_options.c,v 1.85 2024/12/07 18:24:47 tom Exp $") + + NCURSES_EXPORT(int) + idlok(WINDOW *win, bool flag) +@@ -57,7 +57,7 @@ + + if (win) { + SCREEN *sp = _nc_screen_of(win); +- if (sp != 0 ++ if (sp != NULL + #ifdef USE_TERM_DRIVER + && IsTermInfo(sp) + #endif +@@ -158,14 +158,14 @@ + meta(WINDOW *win GCC_UNUSED, bool flag) + { + int result = ERR; +- SCREEN *sp = (win == 0) ? CURRENT_SCREEN : _nc_screen_of(win); ++ SCREEN *sp = (win == NULL) ? CURRENT_SCREEN : _nc_screen_of(win); + + /* Ok, we stay relaxed and don't signal an error if win is NULL */ + T((T_CALLED("meta(%p,%d)"), (void *) win, flag)); + + /* Ok, we stay relaxed and don't signal an error if win is NULL */ + +- if (sp != 0) { ++ if (sp != NULL) { + sp->_use_meta = flag; + #ifdef USE_TERM_DRIVER + if (IsTermInfo(sp)) { +@@ -195,7 +195,7 @@ + int code = ERR; + T((T_CALLED("curs_set(%p,%d)"), (void *) SP_PARM, vis)); + +- if (SP_PARM != 0 && vis >= 0 && vis <= 2) { ++ if (SP_PARM != NULL && vis >= 0 && vis <= 2) { + int cursor = SP_PARM->_cursor; + if (vis == cursor) { + code = cursor; +@@ -269,7 +269,7 @@ + static int + has_key_internal(int keycode, TRIES * tp) + { +- if (tp == 0) ++ if (tp == NULL) + return (FALSE); + else if (tp->value == keycode) + return (TRUE); +@@ -290,7 +290,7 @@ + NCURSES_SP_NAME(has_key) (NCURSES_SP_DCLx int keycode) + { + T((T_CALLED("has_key(%p,%d)"), (void *) SP_PARM, keycode)); +- returnCode(SP != 0 ? has_key_internal(keycode, SP_PARM->_keytry) : FALSE); ++ returnCode(SP != NULL ? has_key_internal(keycode, SP_PARM->_keytry) : FALSE); + } + + #if NCURSES_SP_FUNCS +@@ -334,7 +334,7 @@ + { + int rc = ERR; + +- if (sp != 0) { ++ if (sp != NULL) { + #ifdef USE_PTHREADS + /* + * We might have this situation in a multithreaded application that +Index: ncurses/tinfo/lib_print.c +Prereq: 1.33 +--- ncurses-6.5-20241130+/ncurses/tinfo/lib_print.c 2024-08-31 10:46:01.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/lib_print.c 2024-12-07 18:05:04.000000000 +0000 +@@ -40,7 +40,7 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_print.c,v 1.33 2024/08/31 10:46:01 Rafael.Kitover Exp $") ++MODULE_ID("$Id: lib_print.c,v 1.34 2024/12/07 18:05:04 tom Exp $") + + NCURSES_EXPORT(int) + NCURSES_SP_NAME(mcprint) (NCURSES_SP_DCLx char *data, int len) +@@ -72,8 +72,8 @@ + + need = onsize + (size_t) len + offsize; + +- if (switchon == 0 +- || (mybuf = typeMalloc(char, need + 1)) == 0) { ++ if (switchon == NULL ++ || (mybuf = typeMalloc(char, need + 1)) == NULL) { + free(mybuf); + errno = ENOMEM; + return (ERR); +Index: ncurses/tinfo/lib_raw.c +Prereq: 1.31 +--- ncurses-6.5-20241130+/ncurses/tinfo/lib_raw.c 2024-05-25 20:18:20.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/lib_raw.c 2024-12-07 18:24:47.000000000 +0000 +@@ -50,7 +50,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_raw.c,v 1.31 2024/05/25 20:18:20 Branden.Robinson Exp $") ++MODULE_ID("$Id: lib_raw.c,v 1.32 2024/12/07 18:24:47 tom Exp $") + + #if HAVE_SYS_TERMIO_H + #include <sys/termio.h> /* needed for ISC */ +@@ -85,7 +85,7 @@ + TERMINAL *termp; + + T((T_CALLED("raw(%p)"), (void *) SP_PARM)); +- if ((termp = TerminalOf(SP_PARM)) != 0) { ++ if ((termp = TerminalOf(SP_PARM)) != NULL) { + TTY buf; + + BEFORE("raw"); +@@ -141,7 +141,7 @@ + TERMINAL *termp; + + T((T_CALLED("cbreak(%p)"), (void *) SP_PARM)); +- if ((termp = TerminalOf(SP_PARM)) != 0) { ++ if ((termp = TerminalOf(SP_PARM)) != NULL) { + TTY buf; + + BEFORE("cbreak"); +@@ -185,7 +185,7 @@ + TERMINAL *termp; + + T((T_CALLED("qiflush(%p)"), (void *) SP_PARM)); +- if ((termp = TerminalOf(SP_PARM)) != 0) { ++ if ((termp = TerminalOf(SP_PARM)) != NULL) { + TTY buf; + int result; + +@@ -220,7 +220,7 @@ + TERMINAL *termp; + + T((T_CALLED("noraw(%p)"), (void *) SP_PARM)); +- if ((termp = TerminalOf(SP_PARM)) != 0) { ++ if ((termp = TerminalOf(SP_PARM)) != NULL) { + TTY buf; + + BEFORE("noraw"); +@@ -275,7 +275,7 @@ + TERMINAL *termp; + + T((T_CALLED("nocbreak(%p)"), (void *) SP_PARM)); +- if ((termp = TerminalOf(SP_PARM)) != 0) { ++ if ((termp = TerminalOf(SP_PARM)) != NULL) { + TTY buf; + + BEFORE("nocbreak"); +@@ -316,7 +316,7 @@ + TERMINAL *termp; + + T((T_CALLED("noqiflush(%p)"), (void *) SP_PARM)); +- if ((termp = TerminalOf(SP_PARM)) != 0) { ++ if ((termp = TerminalOf(SP_PARM)) != NULL) { + TTY buf; + int result; + +@@ -354,10 +354,10 @@ + TERMINAL *termp; + + T((T_CALLED("intrflush(%p,%d)"), (void *) SP_PARM, flag)); +- if (SP_PARM == 0) ++ if (SP_PARM == NULL) + returnCode(ERR); + +- if ((termp = TerminalOf(SP_PARM)) != 0) { ++ if ((termp = TerminalOf(SP_PARM)) != NULL) { + TTY buf; + + BEFORE("intrflush"); +Index: ncurses/tinfo/lib_setup.c +Prereq: 1.246 +--- ncurses-6.5-20241130+/ncurses/tinfo/lib_setup.c 2024-11-23 18:32:54.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/lib_setup.c 2024-12-07 20:21:01.000000000 +0000 +@@ -49,7 +49,7 @@ + #include <locale.h> + #endif + +-MODULE_ID("$Id: lib_setup.c,v 1.246 2024/11/23 18:32:54 tom Exp $") ++MODULE_ID("$Id: lib_setup.c,v 1.247 2024/12/07 20:21:01 tom Exp $") + + /**************************************************************************** + * +@@ -533,7 +533,7 @@ + errno = 0; + do { + if (ioctl(cur_term->Filedes, IOCTL_WINSIZE, &size) >= 0) { +- *linep = ((sp != 0 && sp->_filtered) ++ *linep = ((sp != NULL && sp->_filtered) + ? 1 + : WINSIZE_ROWS(size)); + *colp = WINSIZE_COLS(size); +@@ -553,7 +553,8 @@ + /* + * If environment variables are used, update them. + */ +- if ((sp == 0 || !sp->_filtered) && _nc_getenv_num("LINES") > 0) { ++ if ((sp == NULL || !sp->_filtered) && ++ _nc_getenv_num("LINES") > 0) { + _nc_setenv_num("LINES", *linep); + } + if (_nc_getenv_num("COLUMNS") > 0) { +@@ -636,17 +637,17 @@ + int old_cols = columns; + #endif + +- if (sp != 0) { ++ if (sp != NULL) { + TINFO_GET_SIZE(sp, sp->_term, &new_lines, &new_cols); + /* + * See is_term_resized() and resizeterm(). + * We're doing it this way because those functions belong to the upper + * ncurses library, while this resides in the lower terminfo library. + */ +- if (sp->_resize != 0) { ++ if (sp->_resize != NULL) { + if ((new_lines != old_lines) || (new_cols != old_cols)) { + sp->_resize(NCURSES_SP_ARGx new_lines, new_cols); +- } else if (sp->_sig_winch && (sp->_ungetch != 0)) { ++ } else if (sp->_sig_winch && (sp->_ungetch != NULL)) { + sp->_ungetch(SP_PARM, KEY_RESIZE); /* so application can know this */ + } + sp->_sig_winch = FALSE; +@@ -708,7 +709,7 @@ + * since it is fairly common for developers to set the C compiler + * name as an environment variable - using the same symbol. + */ +- if ((tmp = getenv("CC")) != 0 && strlen(tmp) == 1) { ++ if ((tmp = getenv("CC")) != NULL && strlen(tmp) == 1) { + unsigned i; + char CC = *tmp; + +@@ -736,7 +737,7 @@ + * This is preferable to using getenv() since it ensures that we are using + * the locale which was actually initialized by the application. + */ +- env = setlocale(LC_CTYPE, 0); ++ env = setlocale(LC_CTYPE, NULL); + #else + if (((env = getenv("LANG")) != 0 && *env != '\0') + || ((env = getenv("LC_CTYPE")) != 0 && *env != '\0') +@@ -778,8 +779,8 @@ + return result; + } + +-#define CONTROL_N(s) ((s) != 0 && strstr(s, "\016") != 0) +-#define CONTROL_O(s) ((s) != 0 && strstr(s, "\017") != 0) ++#define CONTROL_N(s) ((s) != NULL && strstr(s, "\016") != NULL) ++#define CONTROL_O(s) ((s) != NULL && strstr(s, "\017") != NULL) + + /* + * Check for known broken cases where a UTF-8 locale breaks the alternate +@@ -794,17 +795,17 @@ + int result = 0; + + T((T_CALLED("_nc_locale_breaks_acs:%d"), result)); +- if (getenv(env_name) != 0) { ++ if (getenv(env_name) != NULL) { + result = _nc_getenv_num(env_name); + } else if ((value = tigetnum("U8")) >= 0) { + result = value; /* use extension feature */ +- } else if ((env = getenv("TERM")) != 0) { ++ } else if ((env = getenv("TERM")) != NULL) { + if (strstr(env, "linux")) { + result = 1; /* always broken */ +- } else if (strstr(env, "screen") != 0 +- && ((env = getenv("TERMCAP")) != 0 +- && strstr(env, "screen") != 0) +- && strstr(env, "hhII00") != 0) { ++ } else if (strstr(env, "screen") != NULL ++ && ((env = getenv("TERMCAP")) != NULL ++ && strstr(env, "screen") != NULL) ++ && strstr(env, "hhII00") != NULL) { + if (CONTROL_N(enter_alt_charset_mode) || + CONTROL_O(enter_alt_charset_mode) || + CONTROL_N(set_attributes) || +@@ -827,7 +828,7 @@ + TERMINAL_CONTROL_BLOCK *TCB = 0; + #endif + TERMINAL *termp; +- SCREEN *sp = 0; ++ SCREEN *sp = NULL; + char *myname; + int code = ERR; + +@@ -847,7 +848,7 @@ + T((T_CALLED("setupterm(%s,%d,%p)"), _nc_visbuf(tname), Filedes, (void *) errret)); + #endif + +- if (tname == 0) { ++ if (tname == NULL) { + tname = getenv("TERM"); + #if defined(EXP_WIN32_DRIVER) + if (!VALID_TERM_ENV(tname, NO_TERMINAL)) { +@@ -902,9 +903,9 @@ + * properly with this feature). + */ + if (reuse +- && (termp != 0) ++ && (termp != NULL) + && termp->Filedes == Filedes +- && termp->_termname != 0 ++ && termp->_termname != NULL + && !strcmp(termp->_termname, myname) + && _nc_name_match(TerminalType(termp).term_names, myname, "|")) { + T(("reusing existing terminal information and mode-settings")); +@@ -923,7 +924,7 @@ + + termp = typeCalloc(TERMINAL, 1); + #endif +- if (termp == 0) { ++ if (termp == NULL) { + ret_error1(TGETENT_ERR, + "Not enough memory to create terminal structure.\n", + myname, free(myname)); +@@ -1129,10 +1130,10 @@ + T((T_CALLED("new_prescr()"))); + + _nc_lock_global(screen); +- if ((sp = _nc_find_prescr()) == 0) { ++ if ((sp = _nc_find_prescr()) == NULL) { + sp = _nc_alloc_screen_sp(); + T(("_nc_alloc_screen_sp %p", (void *) sp)); +- if (sp != 0) { ++ if (sp != NULL) { + #ifdef USE_PTHREADS + PRESCREEN_LIST *p = typeCalloc(PRESCREEN_LIST, 1); + if (p != 0) { +@@ -1151,7 +1152,7 @@ + sp->_no_padding = _nc_prescreen._no_padding; + #endif + sp->slk_format = 0; +- sp->_slk = 0; ++ sp->_slk = NULL; + sp->_prescreen = TRUE; + SP_PRE_INIT(sp); + #if USE_REENTRANT +Index: ncurses/tinfo/lib_termcap.c +Prereq: 1.90 +--- ncurses-6.5-20241130+/ncurses/tinfo/lib_termcap.c 2024-07-27 19:22:23.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/lib_termcap.c 2024-12-07 18:26:04.000000000 +0000 +@@ -49,10 +49,10 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_termcap.c,v 1.90 2024/07/27 19:22:23 tom Exp $") ++MODULE_ID("$Id: lib_termcap.c,v 1.91 2024/12/07 18:26:04 tom Exp $") + +-NCURSES_EXPORT_VAR(char *) UP = 0; +-NCURSES_EXPORT_VAR(char *) BC = 0; ++NCURSES_EXPORT_VAR(char *) UP = NULL; ++NCURSES_EXPORT_VAR(char *) BC = NULL; + + #define MyCache _nc_globals.tgetent_cache + #define CacheInx _nc_globals.tgetent_index +@@ -125,18 +125,18 @@ + bool same_result = (MyCache[n].last_used && MyCache[n].last_bufp == bufp); + if (same_result) { + CacheInx = n; +- if (FIX_SGR0 != 0) { ++ if (FIX_SGR0 != NULL) { + FreeAndNull(FIX_SGR0); + } + /* + * Also free the terminfo data that we loaded (much bigger leak). + */ +- if (LAST_TRM != 0 && LAST_TRM != TerminalOf(SP_PARM)) { ++ if (LAST_TRM != NULL && LAST_TRM != TerminalOf(SP_PARM)) { + const TERMINAL *trm = LAST_TRM; + NCURSES_SP_NAME(del_curterm) (NCURSES_SP_ARGx LAST_TRM); + for (CacheInx = 0; CacheInx < TGETENT_MAX; ++CacheInx) + if (LAST_TRM == trm) +- LAST_TRM = 0; ++ LAST_TRM = NULL; + CacheInx = n; + } + found_cache = TRUE; +@@ -157,13 +157,13 @@ + LAST_TRM = TerminalOf(SP_PARM); + LAST_SEQ = ++CacheSeq; + } else { +- LAST_TRM = 0; ++ LAST_TRM = NULL; + } + + PC = 0; +- UP = 0; +- BC = 0; +- FIX_SGR0 = 0; /* don't free it - application may still use */ ++ UP = NULL; ++ BC = NULL; ++ FIX_SGR0 = NULL; /* don't free it - application may still use */ + + if (rc == 1) { + +@@ -180,12 +180,12 @@ + BC = backspace_if_not_bs; + + if ((FIX_SGR0 = _nc_trim_sgr0(&TerminalType(TerminalOf(SP_PARM)))) +- != 0) { ++ != NULL) { + if (!strcmp(FIX_SGR0, exit_attribute_mode)) { + if (FIX_SGR0 != exit_attribute_mode) { + free(FIX_SGR0); + } +- FIX_SGR0 = 0; ++ FIX_SGR0 = NULL; + } + } + LAST_BUF = bufp; +@@ -246,7 +246,7 @@ + int j = -1; + + entry_ptr = _nc_find_type_entry(id, BOOLEAN, TRUE); +- if (entry_ptr != 0) { ++ if (entry_ptr != NULL) { + j = entry_ptr->nte_index; + } + #if NCURSES_XNAMES +@@ -298,7 +298,7 @@ + int j = -1; + + entry_ptr = _nc_find_type_entry(id, NUMBER, TRUE); +- if (entry_ptr != 0) { ++ if (entry_ptr != NULL) { + j = entry_ptr->nte_index; + } + #if NCURSES_XNAMES +@@ -350,7 +350,7 @@ + int j = -1; + + entry_ptr = _nc_find_type_entry(id, STRING, TRUE); +- if (entry_ptr != 0) { ++ if (entry_ptr != NULL) { + j = entry_ptr->nte_index; + } + #if NCURSES_XNAMES +@@ -371,12 +371,12 @@ + /* setupterm forces canceled strings to null */ + if (VALID_STRING(result)) { + if (result == exit_attribute_mode +- && FIX_SGR0 != 0) { ++ && FIX_SGR0 != NULL) { + result = FIX_SGR0; + TR(TRACE_DATABASE, ("altered to : %s", _nc_visbuf(result))); + } +- if (area != 0 +- && *area != 0) { ++ if (area != NULL ++ && *area != NULL) { + _nc_STRCPY(*area, result, 1024); + result = *area; + *area += strlen(*area) + 1; +@@ -401,13 +401,13 @@ + NCURSES_EXPORT(void) + _nc_tgetent_leak(const TERMINAL *const termp) + { +- if (termp != 0) { ++ if (termp != NULL) { + int num; + for (CacheInx = 0; CacheInx < TGETENT_MAX; ++CacheInx) { + if (LAST_TRM == termp) { + FreeAndNull(FIX_SGR0); +- if (LAST_TRM != 0) { +- LAST_TRM = 0; ++ if (LAST_TRM != NULL) { ++ LAST_TRM = NULL; + } + break; + } +@@ -420,7 +420,7 @@ + { + int num; + for (CacheInx = 0; CacheInx < TGETENT_MAX; ++CacheInx) { +- if (LAST_TRM != 0) { ++ if (LAST_TRM != NULL) { + del_curterm(LAST_TRM); + _nc_tgetent_leak(LAST_TRM); + } +Index: ncurses/tinfo/lib_termname.c +Prereq: 1.13 +--- ncurses-6.5-20241130+/ncurses/tinfo/lib_termname.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/lib_termname.c 2024-12-07 20:05:27.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 1998-2003,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -29,17 +29,17 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_termname.c,v 1.13 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: lib_termname.c,v 1.14 2024/12/07 20:05:27 tom Exp $") + + NCURSES_EXPORT(char *) + NCURSES_SP_NAME(termname) (NCURSES_SP_DCL0) + { +- char *name = 0; ++ char *name = NULL; + + T((T_CALLED("termname(%p)"), (void *) SP_PARM)); + + #if NCURSES_SP_FUNCS +- if (TerminalOf(SP_PARM) != 0) { ++ if (TerminalOf(SP_PARM) != NULL) { + name = TerminalOf(SP_PARM)->_termname; + } + #else +Index: ncurses/tinfo/lib_ti.c +Prereq: 1.34 +--- ncurses-6.5-20241130+/ncurses/tinfo/lib_ti.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/lib_ti.c 2024-12-07 20:06:49.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2018,2020 Thomas E. Dickey * ++ * Copyright 2018-2020,2024 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -37,7 +37,7 @@ + + #include <tic.h> + +-MODULE_ID("$Id: lib_ti.c,v 1.34 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: lib_ti.c,v 1.35 2024/12/07 20:06:49 tom Exp $") + + #if 0 + static bool +@@ -63,7 +63,7 @@ + int j = -1; + + entry_ptr = _nc_find_type_entry(str, BOOLEAN, FALSE); +- if (entry_ptr != 0) { ++ if (entry_ptr != NULL) { + j = entry_ptr->nte_index; + } + #if NCURSES_XNAMES +@@ -108,7 +108,7 @@ + int j = -1; + + entry_ptr = _nc_find_type_entry(str, NUMBER, FALSE); +- if (entry_ptr != 0) { ++ if (entry_ptr != NULL) { + j = entry_ptr->nte_index; + } + #if NCURSES_XNAMES +@@ -155,7 +155,7 @@ + int j = -1; + + entry_ptr = _nc_find_type_entry(str, STRING, FALSE); +- if (entry_ptr != 0) { ++ if (entry_ptr != NULL) { + j = entry_ptr->nte_index; + } + #if NCURSES_XNAMES +Index: ncurses/tinfo/lib_tparm.c +Prereq: 1.154 +--- ncurses-6.5-20241130+/ncurses/tinfo/lib_tparm.c 2024-07-27 19:22:23.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/lib_tparm.c 2024-12-07 18:26:59.000000000 +0000 +@@ -53,7 +53,7 @@ + #include <ctype.h> + #include <tic.h> + +-MODULE_ID("$Id: lib_tparm.c,v 1.154 2024/07/27 19:22:23 tom Exp $") ++MODULE_ID("$Id: lib_tparm.c,v 1.155 2024/12/07 18:26:59 tom Exp $") + + /* + * char * +@@ -343,7 +343,7 @@ + #define spop(tps) \ + ((TPS(stack_ptr)-- > 0) \ + ? ((!TPS(stack)[TPS(stack_ptr)].num_type \ +- && TPS(stack)[TPS(stack_ptr)].data.str != 0) \ ++ && TPS(stack)[TPS(stack_ptr)].data.str != NULL) \ + ? TPS(stack)[TPS(stack_ptr)].data.str \ + : dummy) \ + : (tparm_error(tps, "spop: stack underflow"), \ +@@ -361,7 +361,7 @@ + parse_format(const char *s, char *format, int *len) + { + *len = 0; +- if (format != 0) { ++ if (format != NULL) { + bool done = FALSE; + bool allowminus = FALSE; + bool dot = FALSE; +@@ -475,13 +475,13 @@ + int level = -1; + const char *cp = string; + +- if (cp == 0) ++ if (cp == NULL) + return 0; + + if ((len2 = strlen(cp)) + 2 > TPS(fmt_size)) { + TPS(fmt_size) += len2 + 2; + TPS(fmt_buff) = typeRealloc(char, TPS(fmt_size), TPS(fmt_buff)); +- if (TPS(fmt_buff) == 0) ++ if (TPS(fmt_buff) == NULL) + return 0; + } + +@@ -616,14 +616,14 @@ + void *ft; + + result->format = string; +- if ((ft = tfind(result, &MyCache, cmp_format)) != 0) { ++ if ((ft = tfind(result, &MyCache, cmp_format)) != NULL) { + size_t len2; + fs = *(TPARM_DATA **) ft; + *result = *fs; + if ((len2 = strlen(string)) + 2 > TPS(fmt_size)) { + TPS(fmt_size) += len2 + 2; + TPS(fmt_buff) = typeRealloc(char, TPS(fmt_size), TPS(fmt_buff)); +- if (TPS(fmt_buff) == 0) ++ if (TPS(fmt_buff) == NULL) + return ERR; + } + } else +@@ -637,7 +637,7 @@ + result->num_parsed = _nc_tparm_analyze(term, string, + result->p_is_s, + &(result->num_popped)); +- if (TPS(fmt_buff) == 0) { ++ if (TPS(fmt_buff) == NULL) { + TR(TRACE_CALLS, ("%s: error in analysis", TPS(tname))); + rc = ERR; + } else { +@@ -654,10 +654,10 @@ + result->tparm_type |= (1 << n); + } + #if HAVE_TSEARCH +- if ((fs = typeCalloc(TPARM_DATA, 1)) != 0) { ++ if ((fs = typeCalloc(TPARM_DATA, 1)) != NULL) { + *fs = *result; +- if ((fs->format = strdup(string)) != 0) { +- if (tsearch(fs, &MyCache, cmp_format) != 0) { ++ if ((fs->format = strdup(string)) != NULL) { ++ if (tsearch(fs, &MyCache, cmp_format) != NULL) { + ++MyCount; + } else { + free(fs); +@@ -690,9 +690,9 @@ + int i; + + for (i = 0; i < data->num_actual; i++) { +- if (data->p_is_s[i] != 0) { ++ if (data->p_is_s[i] != NULL) { + char *value = va_arg(ap, char *); +- if (value == 0) ++ if (value == NULL) + value = dummy; + data->p_is_s[i] = value; + data->param[i] = 0; +@@ -740,7 +740,7 @@ + if (USE_TRACEF(TRACE_CALLS)) { + int i; + for (i = 0; i < data->num_actual; i++) { +- if (data->p_is_s[i] != 0) { ++ if (data->p_is_s[i] != NULL) { + save_text(tps, ", %s", _nc_visbuf(data->p_is_s[i]), 0); + } else if ((long) data->param[i] > MAX_OF_TYPE(NCURSES_INT2) || + (long) data->param[i] < 0) { +@@ -1003,12 +1003,12 @@ + */ + if (!incremented_two) { + incremented_two = TRUE; +- if (data->p_is_s[0] == 0) { ++ if (data->p_is_s[0] == NULL) { + data->param[0]++; + if (termcap_hack) + TPS(stack)[0].data.num = (int) data->param[0]; + } +- if (data->p_is_s[1] == 0) { ++ if (data->p_is_s[1] == NULL) { + data->param[1]++; + if (termcap_hack) + TPS(stack)[1].data.num = (int) data->param[1]; +Index: ncurses/tinfo/lib_tputs.c +Prereq: 1.113 +--- ncurses-6.5-20241130+/ncurses/tinfo/lib_tputs.c 2024-09-14 23:11:32.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/lib_tputs.c 2024-12-07 21:04:53.000000000 +0000 +@@ -52,7 +52,7 @@ + #include <termcap.h> /* ospeed */ + #include <tic.h> + +-MODULE_ID("$Id: lib_tputs.c,v 1.113 2024/09/14 23:11:32 tom Exp $") ++MODULE_ID("$Id: lib_tputs.c,v 1.115 2024/12/07 21:04:53 tom Exp $") + + NCURSES_EXPORT_VAR(char) PC = 0; /* used by termcap library */ + NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed = 0; /* used by termcap library */ +@@ -63,7 +63,7 @@ + NCURSES_EXPORT(void) + _nc_set_no_padding(SCREEN *sp) + { +- bool no_padding = (getenv("NCURSES_NO_PADDING") != 0); ++ bool no_padding = (getenv("NCURSES_NO_PADDING") != NULL); + + if (sp) + sp->_no_padding = no_padding; +@@ -124,7 +124,7 @@ + NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_DCL0) + { + T((T_CALLED("_nc_flush(%p)"), (void *) SP_PARM)); +- if (SP_PARM != 0 && SP_PARM->_ofd >= 0) { ++ if (SP_PARM != NULL && SP_PARM->_ofd >= 0) { + TR(TRACE_CHARPUT, ("ofd:%d inuse:%lu buffer:%p", + SP_PARM->_ofd, + (unsigned long) SP_PARM->out_inuse, +@@ -149,7 +149,7 @@ + break; /* an error we can not recover from */ + } + } +- } else if (SP_PARM->out_buffer == 0) { ++ } else if (SP_PARM->out_buffer == NULL) { + TR(TRACE_CHARPUT, ("flushing stdout/stderr")); + fflush(stdout); + fflush(stderr); +@@ -159,7 +159,7 @@ + fflush(stdout); + fflush(stderr); + } +- if (SP_PARM != 0) ++ if (SP_PARM != NULL) + SP_PARM->out_inuse = 0; + returnVoid; + } +@@ -180,8 +180,8 @@ + COUNT_OUTCHARS(1); + + if (HasTInfoTerminal(SP_PARM) +- && SP_PARM != 0) { +- if (SP_PARM->out_buffer != 0) { ++ && SP_PARM != NULL) { ++ if (SP_PARM->out_buffer != NULL) { + if (SP_PARM->out_inuse + 1 >= SP_PARM->out_limit) + NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG); + SP_PARM->out_buffer[SP_PARM->out_inuse++] = (char) ch; +@@ -259,7 +259,7 @@ + { + int rc = ERR; + +- if (string != 0) { ++ if (string != NULL) { + TPUTS_TRACE(name); + rc = NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + string, 1, NCURSES_SP_NAME(_nc_outch)); +@@ -314,10 +314,10 @@ + if (!VALID_STRING(string)) + return ERR; + +- if (SP_PARM != 0 && HasTInfoTerminal(SP_PARM)) { ++ if (SP_PARM != NULL && HasTInfoTerminal(SP_PARM)) { + if ( + #if NCURSES_SP_FUNCS +- (SP_PARM != 0 && SP_PARM->_term == 0) ++ (SP_PARM != NULL && SP_PARM->_term == NULL) + #else + cur_term == 0 + #endif +@@ -444,7 +444,7 @@ + NCURSES_EXPORT(int) + _nc_outc_wrapper(SCREEN *sp, int c) + { +- if (0 == sp) { ++ if (NULL == sp) { + return fputc(c, stdout); + } else { + return sp->jump(c); +Index: ncurses/tinfo/lib_ttyflags.c +Prereq: 1.36 +--- ncurses-6.5-20241130+/ncurses/tinfo/lib_ttyflags.c 2020-09-05 22:54:47.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/lib_ttyflags.c 2024-12-07 21:24:18.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -42,7 +42,7 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_ttyflags.c,v 1.36 2020/09/05 22:54:47 tom Exp $") ++MODULE_ID("$Id: lib_ttyflags.c,v 1.37 2024/12/07 21:24:18 tom Exp $") + + NCURSES_EXPORT(int) + NCURSES_SP_NAME(_nc_get_tty_mode) (NCURSES_SP_DCLx TTY * buf) +@@ -50,7 +50,7 @@ + TERMINAL *termp = TerminalOf(SP_PARM); + int result = OK; + +- if (buf == 0 || termp == 0) { ++ if (buf == NULL || termp == NULL) { + result = ERR; + } else { + +@@ -75,7 +75,7 @@ + termp ? termp->Filedes : -1, + _nc_trace_ttymode(buf))); + } +- if (result == ERR && buf != 0) ++ if (result == ERR && buf != NULL) + memset(buf, 0, sizeof(*buf)); + + return (result); +@@ -94,12 +94,12 @@ + { + int result = OK; + +- if (buf == 0 || SP_PARM == 0) { ++ if (buf == NULL || SP_PARM == NULL) { + result = ERR; + } else { + TERMINAL *termp = TerminalOf(SP_PARM); + +- if (0 == termp) { ++ if (NULL == termp) { + result = ERR; + } else { + #ifdef USE_TERM_DRIVER +@@ -113,7 +113,7 @@ + ) { + if (errno == EINTR) + continue; +- if ((errno == ENOTTY) && (SP_PARM != 0)) ++ if ((errno == ENOTTY) && (SP_PARM != NULL)) + SP_PARM->_notty = TRUE; + result = ERR; + } +@@ -145,7 +145,7 @@ + T((T_CALLED("def_shell_mode(%p) ->term %p"), + (void *) SP_PARM, (void *) termp)); + +- if (termp != 0) { ++ if (termp != NULL) { + #ifdef USE_TERM_DRIVER + rc = CallDriver_2(SP_PARM, td_mode, FALSE, TRUE); + #else +@@ -185,7 +185,7 @@ + + T((T_CALLED("def_prog_mode(%p) ->term %p"), (void *) SP_PARM, (void *) termp)); + +- if (termp != 0) { ++ if (termp != NULL) { + #ifdef USE_TERM_DRIVER + rc = CallDriver_2(SP_PARM, td_mode, TRUE, TRUE); + #else +@@ -223,7 +223,7 @@ + + T((T_CALLED("reset_prog_mode(%p) ->term %p"), (void *) SP_PARM, (void *) termp)); + +- if (termp != 0) { ++ if (termp != NULL) { + #ifdef USE_TERM_DRIVER + rc = CallDriver_2(SP_PARM, td_mode, TRUE, FALSE); + #else +@@ -256,7 +256,7 @@ + T((T_CALLED("reset_shell_mode(%p) ->term %p"), + (void *) SP_PARM, (void *) termp)); + +- if (termp != 0) { ++ if (termp != NULL) { + #ifdef USE_TERM_DRIVER + rc = CallDriver_2(SP_PARM, td_mode, FALSE, FALSE); + #else +@@ -281,12 +281,12 @@ + static TTY * + saved_tty(NCURSES_SP_DCL0) + { +- TTY *result = 0; ++ TTY *result = NULL; + +- if (SP_PARM != 0) { ++ if (SP_PARM != NULL) { + result = (TTY *) & (SP_PARM->_saved_tty); + } else { +- if (_nc_prescreen.saved_tty == 0) { ++ if (_nc_prescreen.saved_tty == NULL) { + _nc_prescreen.saved_tty = typeCalloc(TTY, 1); + } + result = _nc_prescreen.saved_tty; +Index: ncurses/tinfo/make_hash.c +Prereq: 1.34 +--- ncurses-6.5-20241130+/ncurses/tinfo/make_hash.c 2024-03-02 19:35:40.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/make_hash.c 2024-12-07 20:51:15.000000000 +0000 +@@ -44,7 +44,7 @@ + + #include <ctype.h> + +-MODULE_ID("$Id: make_hash.c,v 1.34 2024/03/02 19:35:40 tom Exp $") ++MODULE_ID("$Id: make_hash.c,v 1.36 2024/12/07 20:51:15 tom Exp $") + + /* + * _nc_make_hash_table() +@@ -79,7 +79,7 @@ + { + size_t need = strlen(s) + 1; + char *result = malloc(need); +- if (result == 0) ++ if (result == NULL) + failed("strmalloc"); + _nc_STRCPY(result, s, need); + return result; +@@ -153,7 +153,7 @@ + count_columns(char **list) + { + int result = 0; +- if (list != 0) { ++ if (list != NULL) { + while (*list++) { + ++result; + } +@@ -168,17 +168,17 @@ + + int col = 0; + +- if (buffer == 0) { ++ if (buffer == NULL) { + free(list); +- list = 0; +- return 0; ++ list = NULL; ++ return NULL; + } + + if (*buffer != '#') { +- if (list == 0) { ++ if (list == NULL) { + list = typeCalloc(char *, (MAX_COLUMNS + 1)); +- if (list == 0) +- return (0); ++ if (list == NULL) ++ return (NULL); + } + while (*buffer != '\0') { + char *s; +@@ -205,7 +205,7 @@ + break; + } + } +- return col ? list : 0; ++ return col ? list : NULL; + } + + #define SetType(n,t) \ +@@ -272,8 +272,8 @@ + || (column >= MAX_COLUMNS) + || *(root_name = argv[2]) == 0 + || (bigstring = atoi(argv[3])) < 0 +- || name_table == 0 +- || hash_table == 0) { ++ || name_table == NULL ++ || hash_table == NULL) { + fprintf(stderr, "usage: make_hash column root_name bigstring\n"); + exit(EXIT_FAILURE); + } +@@ -291,7 +291,7 @@ + else + buffer[sizeof(buffer) - 2] = '\0'; + list = parse_columns(buffer); +- if (list == 0) /* blank or comment */ ++ if (list == NULL) /* blank or comment */ + continue; + if (is_user) { + if (strcmp(list[0], "userdef")) +@@ -382,15 +382,15 @@ + printf("\t%d,%d,", + name_table[n].ute_argc, + name_table[n].ute_args); +- printf("\t%3d, %3d %s%c\n", ++ printf("\t%3d, %3d %s%s\n", + name_table[n].ute_index, + name_table[n].ute_link, + R_BRACE, +- n < tablesize - 1 ? ',' : ' '); ++ n < tablesize - 1 ? "," : ""); + len += (int) strlen(name_table[n].ute_name) + 1; + } + printf("%s;\n\n", R_BRACE); +- printf("static struct %s_table_entry *_nc_%s_table = 0;\n\n", ++ printf("static struct %s_table_entry *_nc_%s_table = NULL;\n\n", + table_name, + root_name); + } else { +@@ -407,11 +407,11 @@ + printf("\t%d,%d,", + name_table[n].ute_argc, + name_table[n].ute_args); +- printf("\t%3d, %3d %s%c\n", ++ printf("\t%3d, %3d %s%s\n", + name_table[n].ute_index, + name_table[n].ute_link, + R_BRACE, +- n < tablesize - 1 ? ',' : ' '); ++ n < tablesize - 1 ? "," : ""); + } + printf("%s;\n\n", R_BRACE); + } +@@ -439,7 +439,7 @@ + free((void *) name_table[n].ute_name); + } + free(name_table); +- parse_columns(0); ++ parse_columns(NULL); + + return EXIT_SUCCESS; + } +Index: ncurses/tinfo/make_keys.c +Prereq: 1.23 +--- ncurses-6.5-20241130+/ncurses/tinfo/make_keys.c 2021-08-18 20:55:25.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/make_keys.c 2024-12-07 20:06:49.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020,2021 Thomas E. Dickey * ++ * Copyright 2020-2021,2024 Thomas E. Dickey * + * Copyright 1998-2011,2015 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -40,7 +40,7 @@ + #define USE_TERMLIB 1 + #include <build.priv.h> + +-MODULE_ID("$Id: make_keys.c,v 1.23 2021/08/18 20:55:25 tom Exp $") ++MODULE_ID("$Id: make_keys.c,v 1.24 2024/12/07 20:06:49 tom Exp $") + + #include <names.c> + +@@ -51,10 +51,10 @@ + + if (result == 0) { + unsigned n; +- for (n = 0; strnames[n] != 0; n++) { ++ for (n = 0; strnames[n] != NULL; n++) { + ++result; + } +- for (n = 0; strfnames[n] != 0; n++) { ++ for (n = 0; strfnames[n] != NULL; n++) { + ++result; + } + } +@@ -66,14 +66,14 @@ + { + unsigned n; + bool found = FALSE; +- for (n = 0; strnames[n] != 0; n++) { ++ for (n = 0; strnames[n] != NULL; n++) { + if (!strcmp(name, strnames[n])) { + found = TRUE; + break; + } + } + if (!found) { +- for (n = 0; strfnames[n] != 0; n++) { ++ for (n = 0; strfnames[n] != NULL; n++) { + if (!strcmp(name, strfnames[n])) { + found = TRUE; + break; +@@ -93,7 +93,7 @@ + unsigned maxlen = 16; + int scanned; + +- while (fgets(buffer, (int) sizeof(buffer), ifp) != 0) { ++ while (fgets(buffer, (int) sizeof(buffer), ifp) != NULL) { + if (*buffer == '#') + continue; + +@@ -119,7 +119,7 @@ + static void + write_list(FILE *ofp, const char **list) + { +- while (*list != 0) ++ while (*list != NULL) + fprintf(ofp, "%s\n", *list++); + } + +@@ -139,14 +139,14 @@ + "static", + "#endif", + "const struct tinfo_fkeys _nc_tinfo_fkeys[] = {", +- 0 ++ NULL + }; + static const char *suffix[] = + { + "\t{ 0, 0} };", + "", + "#endif /* _INIT_KEYTRY_H */", +- 0 ++ NULL + }; + + write_list(stdout, prefix); +@@ -154,7 +154,7 @@ + int n; + for (n = 1; n < argc; n++) { + FILE *fp = fopen(argv[n], "r"); +- if (fp != 0) { ++ if (fp != NULL) { + make_keys(fp, stdout); + fclose(fp); + } +Index: ncurses/tinfo/name_match.c +Prereq: 1.25 +--- ncurses-6.5-20241130+/ncurses/tinfo/name_match.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/name_match.c 2024-12-07 21:24:18.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 1998-2013,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -34,7 +34,7 @@ + #include <curses.priv.h> + #include <tic.h> + +-MODULE_ID("$Id: name_match.c,v 1.25 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: name_match.c,v 1.26 2024/12/07 21:24:18 tom Exp $") + + #define FirstName _nc_globals.first_name + +@@ -60,17 +60,17 @@ + _nc_first_name(const char *const sp) + { + #if NO_LEAKS +- if (sp == 0) { +- if (FirstName != 0) { ++ if (sp == NULL) { ++ if (FirstName != NULL) { + FreeAndNull(FirstName); + } + } else + #endif + { +- if (FirstName == 0) ++ if (FirstName == NULL) + FirstName = typeMalloc(char, MAX_NAME_SIZE + 1); + +- if (FirstName != 0) { ++ if (FirstName != NULL) { + unsigned n; + const char *src = sp; + #if NCURSES_USE_TERMCAP && NCURSES_XNAMES +@@ -95,7 +95,7 @@ + { + const char *s; + +- if ((s = namelst) != 0) { ++ if ((s = namelst) != NULL) { + while (*s != '\0') { + const char *d, *t; + int code, found; +Index: ncurses/tinfo/obsolete.c +Prereq: 1.11 +--- ncurses-6.5-20241130+/ncurses/tinfo/obsolete.c 2023-10-21 15:38:47.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/obsolete.c 2024-12-07 21:24:18.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020,2023 Thomas E. Dickey * ++ * Copyright 2020-2023,2024 Thomas E. Dickey * + * Copyright 2013-2014,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -37,7 +37,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: obsolete.c,v 1.11 2023/10/21 15:38:47 tom Exp $") ++MODULE_ID("$Id: obsolete.c,v 1.12 2024/12/07 21:24:18 tom Exp $") + + /* + * Obsolete entrypoint retained for binary compatibility. +@@ -126,7 +126,7 @@ + rc = 0; + } + +- if (target != 0) { ++ if (target != NULL) { + switch (rc) { + case 1: + target[0] = CH(0); +@@ -225,7 +225,7 @@ + } + } + +- if (target != 0) { ++ if (target != NULL) { + int shift = 0; + *target = 0; + for (j = 1; j < rc; j++) { +Index: ncurses/tinfo/parse_entry.c +Prereq: 1.111 +--- ncurses-6.5-20241130+/ncurses/tinfo/parse_entry.c 2024-11-23 18:49:08.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/parse_entry.c 2024-12-07 21:13:36.000000000 +0000 +@@ -48,7 +48,7 @@ + #include <ctype.h> + #include <tic.h> + +-MODULE_ID("$Id: parse_entry.c,v 1.111 2024/11/23 18:49:08 tom Exp $") ++MODULE_ID("$Id: parse_entry.c,v 1.112 2024/12/07 21:13:36 tom Exp $") + + #ifdef LINT + static short const parametrized[] = +@@ -204,7 +204,7 @@ + { + struct user_table_entry const *entry = _nc_find_user_entry(name); + bool result = TRUE; +- if ((entry != 0) && (token_type != CANCEL)) { ++ if ((entry != NULL) && (token_type != CANCEL)) { + int have_type = (1 << token_type); + if (!(entry->ute_type & have_type)) { + if (!silent) +@@ -332,7 +332,7 @@ + + entryp->tterm.str_table = entryp->tterm.term_names = _nc_save_str(ptr); + +- if (entryp->tterm.str_table == 0) ++ if (entryp->tterm.str_table == NULL) + returnDB(ERR); + + DEBUG(2, ("Starting '%s'", ptr)); +@@ -350,7 +350,7 @@ + _nc_set_type(name); + + /* check for overly-long names and aliases */ +- for (base = entryp->tterm.term_names; (ptr = strchr(base, '|')) != 0; ++ for (base = entryp->tterm.term_names; (ptr = strchr(base, '|')) != NULL; + base = ptr + 1) { + if (ptr - base > MAX_ALIAS) { + _nc_warning("%s `%.*s' may be too long", +@@ -459,7 +459,7 @@ + if (expected_type(_nc_curr_token.tk_name, token_type, silent)) { + if ((entry_ptr = _nc_extend_names(entryp, + _nc_curr_token.tk_name, +- token_type)) != 0) { ++ token_type)) != NULL) { + if (_nc_tracing >= DEBUG_LEVEL(1)) { + _nc_warning("extended capability '%s'", + _nc_curr_token.tk_name); +@@ -629,7 +629,7 @@ + * have picked up defaults via translation. + */ + for (i = 0; i < entryp->nuses; i++) { +- if (entryp->uses[i].name != 0 ++ if (entryp->uses[i].name != NULL + && !strchr(entryp->uses[i].name, '+')) + has_base_entry = TRUE; + } +@@ -697,7 +697,7 @@ + static void + append_acs0(string_desc * dst, int code, const char *src, size_t off) + { +- if (src != 0 && off < strlen(src)) { ++ if (src != NULL && off < strlen(src)) { + char temp[3]; + temp[0] = (char) code; + temp[1] = src[off]; +@@ -929,15 +929,15 @@ + + /* we're going to use this for a special case later */ + dp = strchr(other_non_function_keys, 'i'); +- foundim = (dp != 0) && (dp[1] == 'm'); ++ foundim = (dp != NULL) && (dp[1] == 'm'); + + /* look at each comma-separated capability in the ko string... */ + for (base = other_non_function_keys; +- (cp = strchr(base, ',')) != 0; ++ (cp = strchr(base, ',')) != NULL; + base = cp + 1) { + size_t len = (unsigned) (cp - base); + size_t n; +- assoc const *ap = 0; ++ assoc const *ap = NULL; + + for (n = 0; n < SIZEOF(ko_xlate); ++n) { + if (len == strlen(ko_xlate[n].from) +@@ -946,7 +946,7 @@ + break; + } + } +- if (ap == 0) { ++ if (ap == NULL) { + _nc_warning("unknown capability `%.*s' in ko string", + (int) len, base); + continue; +@@ -1143,7 +1143,7 @@ + return NOTFOUND; + } + +- for (count = 0; names[count] != 0; count++) { ++ for (count = 0; names[count] != NULL; count++) { + if (!strcmp(names[count], find)) { + struct name_table_entry const *entry_ptr = _nc_get_table(FALSE); + while (entry_ptr->nte_type != state +Index: ncurses/tinfo/read_entry.c +Prereq: 1.173 +--- ncurses-6.5-20241130+/ncurses/tinfo/read_entry.c 2024-07-27 23:07:02.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/read_entry.c 2024-12-07 21:02:00.000000000 +0000 +@@ -42,7 +42,7 @@ + + #include <tic.h> + +-MODULE_ID("$Id: read_entry.c,v 1.173 2024/07/27 23:07:02 tom Exp $") ++MODULE_ID("$Id: read_entry.c,v 1.174 2024/12/07 21:02:00 tom Exp $") + + #define MyNumber(n) (short) LOW_MSB(n) + +@@ -237,11 +237,11 @@ + tp->ext_Numbers = 0; + tp->ext_Strings = 0; + #endif +- if (tp->Booleans == 0) ++ if (tp->Booleans == NULL) + TYPE_MALLOC(NCURSES_SBOOL, BOOLCOUNT, tp->Booleans); +- if (tp->Numbers == 0) ++ if (tp->Numbers == NULL) + TYPE_MALLOC(NCURSES_INT2, NUMCOUNT, tp->Numbers); +- if (tp->Strings == 0) ++ if (tp->Strings == NULL) + TYPE_MALLOC(char *, STRCOUNT, tp->Strings); + + for_each_boolean(i, tp) +@@ -346,7 +346,7 @@ + want = (unsigned) (str_size + name_size + 1); + /* try to allocate space for the string table */ + if (str_count * SIZEOF_SHORT >= max_entry_size +- || (string_table = typeMalloc(char, want)) == 0) { ++ || (string_table = typeMalloc(char, want)) == NULL) { + returnDB(TGETENT_NO); + } + +@@ -483,7 +483,7 @@ + + if (ext_str_limit) { + ptr->ext_str_table = typeMalloc(char, (size_t) ext_str_limit); +- if (ptr->ext_str_table == 0) { ++ if (ptr->ext_str_table == NULL) { + returnDB(TGETENT_NO); + } + if (Read(ptr->ext_str_table, (unsigned) ext_str_limit) != ext_str_limit) { +@@ -582,11 +582,11 @@ + _nc_read_file_entry(const char *const filename, TERMTYPE2 *ptr) + /* return 1 if read, 0 if not found or garbled */ + { +- FILE *fp = 0; ++ FILE *fp = NULL; + int code; + + if (_nc_access(filename, R_OK) < 0 +- || (fp = safe_fopen(filename, BIN_R)) == 0) { ++ || (fp = safe_fopen(filename, BIN_R)) == NULL) { + TR(TRACE_DATABASE, ("cannot open terminfo %s (errno=%d)", filename, errno)); + code = TGETENT_NO; + } else { +@@ -881,7 +881,7 @@ + { + int code = TGETENT_NO; + +- if (name == 0) ++ if (name == NULL) + return _nc_read_entry2("", filename, tp); + + _nc_SPRINTF(filename, _nc_SLIMIT(PATH_MAX) +@@ -891,7 +891,7 @@ + || strcmp(name, ".") == 0 + || strcmp(name, "..") == 0 + || _nc_pathlast(name) != 0 +- || strchr(name, NCURSES_PATHSEP) != 0) { ++ || strchr(name, NCURSES_PATHSEP) != NULL) { + TR(TRACE_DATABASE, ("illegal or missing entry name '%s'", name)); + } else { + #if NCURSES_USE_DATABASE +@@ -901,7 +901,7 @@ + + _nc_first_db(&state, &offset); + code = TGETENT_ERR; +- while ((path = _nc_next_db(&state, &offset)) != 0) { ++ while ((path = _nc_next_db(&state, &offset)) != NULL) { + code = _nc_read_tic_entry(filename, PATH_MAX, path, name, tp); + if (code == TGETENT_YES) { + _nc_last_db(); +Index: ncurses/tinfo/strings.c +Prereq: 1.11 +--- ncurses-6.5-20241130+/ncurses/tinfo/strings.c 2023-05-27 20:13:10.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/strings.c 2024-12-07 21:24:18.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020,2023 Thomas E. Dickey * ++ * Copyright 2020-2023,2024 Thomas E. Dickey * + * Copyright 2000-2012,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -38,7 +38,7 @@ + #include <curses.priv.h> + #include <tic.h> + +-MODULE_ID("$Id: strings.c,v 1.11 2023/05/27 20:13:10 tom Exp $") ++MODULE_ID("$Id: strings.c,v 1.12 2024/12/07 21:24:18 tom Exp $") + + /**************************************************************************** + * Useful string functions (especially for mvcur) +@@ -71,12 +71,12 @@ + NCURSES_EXPORT(string_desc *) + _nc_str_init(string_desc * dst, char *src, size_t len) + { +- if (dst != 0) { ++ if (dst != NULL) { + dst->s_head = src; + dst->s_tail = src; + dst->s_size = len - 1; + dst->s_init = dst->s_size; +- if (src != 0) ++ if (src != NULL) + *src = 0; + } + return dst; +@@ -88,7 +88,7 @@ + NCURSES_EXPORT(string_desc *) + _nc_str_null(string_desc * dst, size_t len) + { +- return _nc_str_init(dst, 0, len); ++ return _nc_str_init(dst, NULL, len); + } + + /* +@@ -111,7 +111,7 @@ + size_t len = strlen(src); + + if (len < dst->s_size) { +- if (dst->s_tail != 0) { ++ if (dst->s_tail != NULL) { + _nc_STRCPY(dst->s_tail, src, dst->s_size); + dst->s_tail += len; + } +@@ -132,7 +132,7 @@ + size_t len = strlen(src); + + if (len < dst->s_size) { +- if (dst->s_head != 0) { ++ if (dst->s_head != NULL) { + _nc_STRCPY(dst->s_head, src, dst->s_size); + dst->s_tail = dst->s_head + len; + } +Index: ncurses/tinfo/trim_sgr0.c +Prereq: 1.25 +--- ncurses-6.5-20241130+/ncurses/tinfo/trim_sgr0.c 2024-10-19 21:18:18.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/trim_sgr0.c 2024-12-07 21:02:59.000000000 +0000 +@@ -37,7 +37,7 @@ + + #include <tic.h> + +-MODULE_ID("$Id: trim_sgr0.c,v 1.25 2024/10/19 21:18:18 tom Exp $") ++MODULE_ID("$Id: trim_sgr0.c,v 1.26 2024/12/07 21:02:59 tom Exp $") + + #undef CUR + #define CUR tp-> +@@ -52,7 +52,7 @@ + if (PRESENT(value)) + result = strdup(value); + else +- result = 0; ++ result = NULL; + return result; + } + +@@ -60,7 +60,7 @@ + is_csi(const char *s) + { + int result = 0; +- if (s != 0) { ++ if (s != NULL) { + if (UChar(s[0]) == CSI_CHR) + result = 1; + else if (s[0] == ESC_CHR && s[1] == L_BLOCK) +@@ -101,7 +101,7 @@ + static bool + rewrite_sgr(char *s, const char *attr) + { +- if (s != 0) { ++ if (s != NULL) { + if (PRESENT(attr)) { + size_t len_s = strlen(s); + size_t len_a = strlen(attr); +@@ -125,7 +125,7 @@ + similar_sgr(char *a, char *b) + { + bool result = FALSE; +- if (a != 0 && b != 0) { ++ if (a != NULL && b != NULL) { + int csi_a = is_csi(a); + int csi_b = is_csi(b); + size_t len_a; +@@ -300,7 +300,7 @@ + } + } + if (!found +- && (tmp = strstr(end, off)) != 0 ++ && (tmp = strstr(end, off)) != NULL + && strcmp(end, off) != 0) { + i = (size_t) (tmp - end); + j = strlen(off); +Index: ncurses/tinfo/write_entry.c +Prereq: 1.137 +--- ncurses-6.5-20241130+/ncurses/tinfo/write_entry.c 2024-11-09 19:24:01.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tinfo/write_entry.c 2024-12-07 21:13:36.000000000 +0000 +@@ -42,7 +42,7 @@ + + #include <tic.h> + +-MODULE_ID("$Id: write_entry.c,v 1.137 2024/11/09 19:24:01 tom Exp $") ++MODULE_ID("$Id: write_entry.c,v 1.138 2024/12/07 21:13:36 tom Exp $") + + #if 1 + #define TRACE_OUT(p) DEBUG(2, p) +@@ -82,12 +82,12 @@ + } else { + FILE *fp = ((_nc_access(filename, W_OK) == 0) + ? safe_fopen(filename, BIN_W) +- : 0); ++ : NULL); + size_t actual; + +- if (fp == 0) { ++ if (fp == NULL) { + _nc_syserr_abort("cannot open %s/%s: (errno %d) %s", +- _nc_tic_dir(0), ++ _nc_tic_dir(NULL), + filename, + errno, + strerror(errno)); +@@ -129,9 +129,9 @@ + static const char dirnames[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + static bool verified[sizeof(dirnames)]; + +- const char *s = 0; ++ const char *s = NULL; + +- if (code == 0 || (s = (strchr) (dirnames, code)) == 0) { ++ if (code == 0 || (s = (strchr) (dirnames, code)) == NULL) { + _nc_err_abort("Illegal terminfo subdirectory \"" LEAF_FMT "\"", code); + } else if (!verified[s - dirnames]) { + char dir[sizeof(LEAF_FMT)]; +Index: ncurses/trace/lib_trace.c +Prereq: 1.108 +--- ncurses-6.5-20241130+/ncurses/trace/lib_trace.c 2024-11-23 18:40:23.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/trace/lib_trace.c 2024-12-07 21:02:00.000000000 +0000 +@@ -48,7 +48,7 @@ + + #include <ctype.h> + +-MODULE_ID("$Id: lib_trace.c,v 1.108 2024/11/23 18:40:23 tom Exp $") ++MODULE_ID("$Id: lib_trace.c,v 1.109 2024/12/07 21:02:00 tom Exp $") + + NCURSES_EXPORT_VAR(unsigned) _nc_tracing = 0; /* always define this */ + +@@ -135,7 +135,7 @@ + + Locked(result = _nc_tracing); + +- if ((MyFP == 0) && tracelevel) { ++ if ((MyFP == NULL) && tracelevel) { + MyInit = TRUE; + if (MyFD >= 0) { + MyFP = fdopen(MyFD, BIN_W); +@@ -149,7 +149,7 @@ + #define SAFE_MODE (O_CREAT | O_EXCL | O_RDWR) + if (_nc_access(myFile, W_OK) < 0 + || (MyFD = safe_open3(myFile, SAFE_MODE, 0600)) < 0 +- || (MyFP = fdopen(MyFD, BIN_W)) == 0) { ++ || (MyFP = fdopen(MyFD, BIN_W)) == NULL) { + ; /* EMPTY */ + } + } +@@ -158,7 +158,7 @@ + * so that the trace-output gets flushed automatically at the + * end of each line. This is useful in case the program dies. + */ +- if (MyFP != 0) { ++ if (MyFP != NULL) { + #if HAVE_SETVBUF /* ANSI */ + (void) setvbuf(MyFP, (char *) 0, _IOLBF, (size_t) 0); + #elif HAVE_SETBUF /* POSIX */ +@@ -188,10 +188,10 @@ + _tracef("- DEBUG_LEVEL(%u)", tracelevel >> TRACE_SHIFT); + } + } else if (tracelevel == 0) { +- if (MyFP != 0) { ++ if (MyFP != NULL) { + MyFD = dup(MyFD); /* allow reopen of same file */ + fclose(MyFP); +- MyFP = 0; ++ MyFP = NULL; + } + Locked(_nc_tracing = tracelevel); + } else if (_nc_tracing != tracelevel) { +@@ -226,7 +226,7 @@ + + #ifdef TRACE + /* verbose-trace in the command-line utilities relies on this */ +- if (fp == 0 && !MyInit && _nc_tracing >= DEBUG_LEVEL(1)) ++ if (fp == NULL && !MyInit && _nc_tracing >= DEBUG_LEVEL(1)) + fp = stderr; + #endif + +@@ -246,7 +246,7 @@ + } + } + +- if (doit != 0 && fp != 0) { ++ if (doit != 0 && fp != NULL) { + #ifdef USE_PTHREADS + /* + * TRACE_ICALLS is "really" needed to show normal use with threaded +Index: ncurses/trace/lib_traceatr.c +Prereq: 1.97 +--- ncurses-6.5-20241130+/ncurses/trace/lib_traceatr.c 2024-07-27 19:08:04.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/trace/lib_traceatr.c 2024-12-07 21:12:53.000000000 +0000 +@@ -44,7 +44,7 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_traceatr.c,v 1.97 2024/07/27 19:08:04 tom Exp $") ++MODULE_ID("$Id: lib_traceatr.c,v 1.98 2024/12/07 21:12:53 tom Exp $") + + #define COLOR_OF(c) ((c < 0) ? "default" : (c > 7 ? color_of(c) : colors[c].name)) + +@@ -126,7 +126,7 @@ + #undef DATA + char *result = _nc_trace_buf(bufnum, (size_t) BUFSIZ); + +- if (result != 0) { ++ if (result != NULL) { + size_t n; + unsigned save_nc_tracing = _nc_tracing; + +@@ -167,7 +167,7 @@ + } + } + if (ChAttrOf(newmode) == A_NORMAL) { +- if (result != 0 && result[1] != '\0') ++ if (result != NULL && result[1] != '\0') + (void) _nc_trace_bufcat(bufnum, "|"); + (void) _nc_trace_bufcat(bufnum, "A_NORMAL"); + } +@@ -248,14 +248,14 @@ + }; + #undef DATA + +- const char *result = 0; ++ const char *result = NULL; + + #if NCURSES_SP_FUNCS + (void) sp; + #endif +- if (SP_PARM != 0 && (attr & A_ALTCHARSET) && (acs_chars != 0)) { ++ if (SP_PARM != NULL && (attr & A_ALTCHARSET) && (acs_chars != NULL)) { + char *cp; +- const char *found = 0; ++ const char *found = NULL; + + for (cp = acs_chars; cp[0] && cp[1]; cp += 2) { + if (ChCharOf(UChar(cp[1])) == ChCharOf(ch)) { +@@ -264,7 +264,7 @@ + } + } + +- if (found != 0) { ++ if (found != NULL) { + size_t n; + + ch = ChCharOf(UChar(*found)); +@@ -284,12 +284,12 @@ + { + char *result = _nc_trace_buf(bufnum, (size_t) BUFSIZ); + +- if (result != 0) { ++ if (result != NULL) { + const char *found; + attr_t attr = ChAttrOf(ch); + + _nc_STRCPY(result, l_brace, TRACE_BUF_SIZE(bufnum)); +- if ((found = _nc_altcharset_name(attr, ch)) != 0) { ++ if ((found = _nc_altcharset_name(attr, ch)) != NULL) { + (void) _nc_trace_bufcat(bufnum, found); + attr &= ~A_ALTCHARSET; + } else +@@ -328,13 +328,13 @@ + { + char *result = _nc_trace_buf(bufnum, (size_t) BUFSIZ); + +- if (result != 0) { ++ if (result != NULL) { + _nc_STRCPY(result, l_brace, TRACE_BUF_SIZE(bufnum)); +- if (ch != 0) { ++ if (ch != NULL) { + const char *found; + attr_t attr = AttrOfD(ch); + +- if ((found = _nc_altcharset_name(attr, (chtype) CharOfD(ch))) != 0) { ++ if ((found = _nc_altcharset_name(attr, (chtype) CharOfD(ch))) != NULL) { + (void) _nc_trace_bufcat(bufnum, found); + attr &= ~A_ALTCHARSET; + } else if (isWidecExt(CHDEREF(ch))) { +Index: ncurses/trace/lib_tracebits.c +Prereq: 1.31 +--- ncurses-6.5-20241130+/ncurses/trace/lib_tracebits.c 2020-11-14 23:38:11.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/trace/lib_tracebits.c 2024-12-07 21:24:18.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2019,2020 Thomas E. Dickey * ++ * Copyright 2019-2020,2024 Thomas E. Dickey * + * Copyright 1998-2012,2015 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -35,7 +35,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_tracebits.c,v 1.31 2020/11/14 23:38:11 tom Exp $") ++MODULE_ID("$Id: lib_tracebits.c,v 1.32 2024/12/07 21:24:18 tom Exp $") + + #if HAVE_SYS_TERMIO_H + #include <sys/termio.h> /* needed for ISC */ +@@ -172,7 +172,7 @@ + 8 + sizeof(cflags) + + 8 + sizeof(lflags) + + 8); +- if (buf != 0) { ++ if (buf != NULL) { + + if (tty->c_iflag & ALLIN) + lookup_bits(buf, iflags, "iflags", tty->c_iflag); +Index: ncurses/trace/lib_tracechr.c +Prereq: 1.25 +--- ncurses-6.5-20241130+/ncurses/trace/lib_tracechr.c 2024-11-23 19:50:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/trace/lib_tracechr.c 2024-12-07 21:02:00.000000000 +0000 +@@ -40,7 +40,7 @@ + + #include <ctype.h> + +-MODULE_ID("$Id: lib_tracechr.c,v 1.25 2024/11/23 19:50:34 tom Exp $") ++MODULE_ID("$Id: lib_tracechr.c,v 1.26 2024/12/07 21:02:00 tom Exp $") + + #ifdef TRACE + +@@ -50,13 +50,13 @@ + _nc_tracechar(SCREEN *sp, int ch) + { + NCURSES_CONST char *name; +- char *MyBuffer = ((sp != 0) ++ char *MyBuffer = ((sp != NULL) + ? sp->tracechr_buf + : _nc_globals.tracechr_buf); + + if ((ch > KEY_MIN && !_nc_unicode_locale()) || ch < 0) { + name = safe_keyname(SP_PARM, ch); +- if (name == 0 || *name == '\0') ++ if (name == NULL || *name == '\0') + name = "NULL"; + _nc_SPRINTF(MyBuffer, _nc_SLIMIT(MyBufSize) + "'%.30s' = \\x%02x", name, UChar(ch)); +@@ -72,7 +72,7 @@ + "\\x%02x", ch); + } else { + name = safe_unctrl(SP_PARM, (chtype) ch); +- if (name == 0 || *name == 0) ++ if (name == NULL || *name == 0) + name = "null"; /* shouldn't happen */ + _nc_SPRINTF(MyBuffer, _nc_SLIMIT(MyBufSize) + "'%.30s' = \\x%02x", name, ch); +Index: ncurses/trace/lib_tracedmp.c +Prereq: 1.37 +--- ncurses-6.5-20241130+/ncurses/trace/lib_tracedmp.c 2023-06-24 15:49:45.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/trace/lib_tracedmp.c 2024-12-07 20:06:49.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020,2023 Thomas E. Dickey * ++ * Copyright 2020-2023,2024 Thomas E. Dickey * + * Copyright 1998-2012,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -40,7 +40,7 @@ + #include <curses.priv.h> + #include <ctype.h> + +-MODULE_ID("$Id: lib_tracedmp.c,v 1.37 2023/06/24 15:49:45 tom Exp $") ++MODULE_ID("$Id: lib_tracedmp.c,v 1.38 2024/12/07 20:06:49 tom Exp $") + + #ifdef TRACE + +@@ -72,7 +72,7 @@ + my_length = (unsigned) (2 * (width + 1)); + my_buffer = typeRealloc(char, my_length, my_buffer); + } +- if (my_buffer == 0) ++ if (my_buffer == NULL) + return; + + for (n = 0; n <= win->_maxy; ++n) { +@@ -177,7 +177,7 @@ + } + #if NO_LEAKS + free(my_buffer); +- my_buffer = 0; ++ my_buffer = NULL; + my_length = 0; + #endif + } +Index: ncurses/trace/lib_tracemse.c +Prereq: 1.23 +--- ncurses-6.5-20241130+/ncurses/trace/lib_tracemse.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/trace/lib_tracemse.c 2024-12-07 20:06:49.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 1998-2012,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -39,7 +39,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_tracemse.c,v 1.23 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: lib_tracemse.c,v 1.24 2024/12/07 20:06:49 tom Exp $") + + #ifdef TRACE + +@@ -117,9 +117,9 @@ + NCURSES_EXPORT(char *) + _nc_tracemouse(SCREEN *sp, MEVENT const *ep) + { +- char *result = 0; ++ char *result = NULL; + +- if (sp != 0) { ++ if (sp != NULL) { + _nc_SPRINTF(my_buffer, _nc_SLIMIT(sizeof(my_buffer)) + TRACEMSE_FMT, + ep->id, +@@ -138,7 +138,7 @@ + NCURSES_EXPORT(mmask_t) + _nc_retrace_mmask_t(SCREEN *sp, mmask_t code) + { +- if (sp != 0) { ++ if (sp != NULL) { + *my_buffer = '\0'; + T((T_RETURN("{%s}"), _nc_trace_mmask_t(sp, code))); + } else { +Index: ncurses/trace/trace_buf.c +Prereq: 1.22 +--- ncurses-6.5-20241130+/ncurses/trace/trace_buf.c 2023-06-24 13:37:25.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/trace/trace_buf.c 2024-12-07 21:24:18.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020,2023 Thomas E. Dickey * ++ * Copyright 2020-2023,2024 Thomas E. Dickey * + * Copyright 1998-2011,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -36,7 +36,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: trace_buf.c,v 1.22 2023/06/24 13:37:25 tom Exp $") ++MODULE_ID("$Id: trace_buf.c,v 1.23 2024/12/07 21:24:18 tom Exp $") + + #ifdef TRACE + +@@ -46,22 +46,22 @@ + static char * + _nc_trace_alloc(int bufnum, size_t want) + { +- char *result = 0; ++ char *result = NULL; + + if (bufnum >= 0) { + if ((size_t) (bufnum + 1) > MySize) { + size_t need = (size_t) (bufnum + 1) * 2; +- if ((MyList = typeRealloc(TRACEBUF, need, MyList)) != 0) { ++ if ((MyList = typeRealloc(TRACEBUF, need, MyList)) != NULL) { + while (need > MySize) +- MyList[MySize++].text = 0; ++ MyList[MySize++].text = NULL; + } + } + +- if (MyList != 0) { +- if (MyList[bufnum].text == 0 ++ if (MyList != NULL) { ++ if (MyList[bufnum].text == NULL + || want > MyList[bufnum].size) { + MyList[bufnum].text = typeRealloc(char, want, MyList[bufnum].text); +- if (MyList[bufnum].text != 0) ++ if (MyList[bufnum].text != NULL) + MyList[bufnum].size = want; + } + result = MyList[bufnum].text; +@@ -72,12 +72,12 @@ + if (MySize) { + if (MyList) { + while (MySize--) { +- if (MyList[MySize].text != 0) { ++ if (MyList[MySize].text != NULL) { + free(MyList[MySize].text); + } + } + free(MyList); +- MyList = 0; ++ MyList = NULL; + } + MySize = 0; + } +@@ -93,7 +93,7 @@ + _nc_trace_buf(int bufnum, size_t want) + { + char *result = _nc_trace_alloc(bufnum, want); +- if (result != 0) ++ if (result != NULL) + *result = '\0'; + return result; + } +@@ -109,12 +109,12 @@ + if (value == NULL) + value = ""; + buffer = _nc_trace_alloc(bufnum, (size_t) 0); +- if (buffer != 0) { ++ if (buffer != NULL) { + size_t have = strlen(buffer); + size_t need = strlen(value) + have; + + buffer = _nc_trace_alloc(bufnum, 1 + need); +- if (buffer != 0) ++ if (buffer != NULL) + _nc_STRCPY(buffer + have, value, need); + + } +Index: ncurses/trace/trace_tries.c +Prereq: 1.18 +--- ncurses-6.5-20241130+/ncurses/trace/trace_tries.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/trace/trace_tries.c 2024-12-07 21:24:18.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 1999-2011,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -36,7 +36,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: trace_tries.c,v 1.18 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: trace_tries.c,v 1.19 2024/12/07 21:24:18 tom Exp $") + + #ifdef TRACE + #define my_buffer _nc_globals.tracetry_buf +@@ -50,8 +50,8 @@ + my_buffer = (unsigned char *) _nc_doalloc(my_buffer, my_length); + } + +- if (my_buffer != 0) { +- while (tree != 0) { ++ if (my_buffer != NULL) { ++ while (tree != NULL) { + if ((my_buffer[level] = tree->ch) == 0) + my_buffer[level] = 128; + my_buffer[level + 1] = 0; +@@ -69,7 +69,7 @@ + NCURSES_EXPORT(void) + _nc_trace_tries(TRIES * tree) + { +- if ((my_buffer = typeMalloc(unsigned char, my_length = 80)) != 0) { ++ if ((my_buffer = typeMalloc(unsigned char, my_length = 80)) != NULL) { + _tracef("BEGIN tries %p", (void *) tree); + recur_tries(tree, 0); + _tracef(". . . tries %p", (void *) tree); +Index: ncurses/trace/varargs.c +Prereq: 1.14 +--- ncurses-6.5-20241130+/ncurses/trace/varargs.c 2024-07-27 19:23:59.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/trace/varargs.c 2024-12-07 18:00:11.000000000 +0000 +@@ -35,7 +35,7 @@ + + #include <ctype.h> + +-MODULE_ID("$Id: varargs.c,v 1.14 2024/07/27 19:23:59 tom Exp $") ++MODULE_ID("$Id: varargs.c,v 1.15 2024/12/07 18:00:11 tom Exp $") + + #ifdef TRACE + +@@ -63,17 +63,17 @@ + const char *param; + int n; + +- if (fmt == 0 || *fmt == '\0') ++ if (fmt == NULL || *fmt == '\0') + return NULL; + if (MyLength == 0) + MyBuffer = typeMalloc(char, MyLength = BUFSIZ); +- if (MyBuffer == 0) ++ if (MyBuffer == NULL) + return NULL; + *MyBuffer = '\0'; + + while (*fmt != '\0') { + if (*fmt == '%') { +- const char *pval = 0; /* avoid const-cast */ ++ const char *pval = NULL; /* avoid const-cast */ + const char *sval = ""; + double fval = 0.0; + int done = FALSE; +@@ -169,7 +169,7 @@ + } + MyLength += strlen(param) + 2; + MyBuffer = typeRealloc(char, MyLength, MyBuffer); +- if (MyBuffer != 0) { ++ if (MyBuffer != NULL) { + _nc_SPRINTF(MyBuffer + strlen(MyBuffer), + _nc_SLIMIT(MyLength - strlen(MyBuffer)) + ", %s", param); +Index: ncurses/trace/visbuf.c +Prereq: 1.55 +--- ncurses-6.5-20241130+/ncurses/trace/visbuf.c 2024-11-30 21:24:09.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/trace/visbuf.c 2024-12-07 21:12:53.000000000 +0000 +@@ -43,7 +43,7 @@ + #include <tic.h> + #include <ctype.h> + +-MODULE_ID("$Id: visbuf.c,v 1.55 2024/11/30 21:24:09 tom Exp $") ++MODULE_ID("$Id: visbuf.c,v 1.56 2024/12/07 21:12:53 tom Exp $") + + #define NUM_VISBUFS 4 + +@@ -109,11 +109,11 @@ + static const char * + _nc_visbuf2n(int bufnum, const char *buf, int len) + { +- const char *vbuf = 0; ++ const char *vbuf = NULL; + char *tp; + int count; + +- if (buf == 0) ++ if (buf == NULL) + return ("(null)"); + if (buf == CANCELLED_STRING) + return ("(cancelled)"); +@@ -140,7 +140,7 @@ + } + } + #endif +- if (tp != 0) { ++ if (tp != NULL) { + int c; + + *tp++ = D_QUOTE; +@@ -196,7 +196,7 @@ + char *tp; + int count; + +- if (buf == 0) ++ if (buf == NULL) + return ("(null)"); + + if (len < 0) +@@ -212,7 +212,7 @@ + vbuf = tp = mybuf[bufnum]; + } + #endif +- if (tp != 0) { ++ if (tp != NULL) { + wchar_t c; + + *tp++ = D_QUOTE; +@@ -267,12 +267,12 @@ + } + if (mylen < ++n) { + mylen = n + 80; +- if (mybuf != 0) ++ if (mybuf != NULL) + mybuf = typeRealloc(wchar_t, mylen, mybuf); + else + mybuf = typeMalloc(wchar_t, mylen); + } +- if (mybuf != 0) { ++ if (mybuf != NULL) { + for (n = 0; buf[n] != 0; ++n) { + mybuf[n] = (wchar_t) buf[n]; + } +@@ -289,7 +289,7 @@ + { + char *result = _nc_trace_buf(bufnum, (size_t) BUFSIZ); + +- if (result != 0) { ++ if (result != NULL) { + int first = 0; + + #if USE_WIDEC_SUPPORT +@@ -317,7 +317,7 @@ + for (j = first; j <= last; ++j) { + const char *found = _nc_altcharset_name(attr, (chtype) + CharOf(buf[j])); +- if (found != 0) { ++ if (found != NULL) { + (void) _nc_trace_bufcat(bufnum, found); + attr &= ~A_ALTCHARSET; + } else +Index: ncurses/tty/MKexpanded.sh +Prereq: 1.24 +--- ncurses-6.5-20241130+/ncurses/tty/MKexpanded.sh 2022-02-05 17:27:18.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tty/MKexpanded.sh 2024-12-07 20:48:46.000000000 +0000 +@@ -1,6 +1,6 @@ + #! /bin/sh + ############################################################################## +-# Copyright 2019-2020,2021 Thomas E. Dickey # ++# Copyright 2019-2021,2024 Thomas E. Dickey # + # Copyright 1998-2015,2017 Free Software Foundation, Inc. # + # # + # Permission is hereby granted, free of charge, to any person obtaining a # +@@ -30,7 +30,7 @@ + # + # Author: Thomas E. Dickey, 1997-on + # +-# $Id: MKexpanded.sh,v 1.24 2022/02/05 17:27:18 tom Exp $ ++# $Id: MKexpanded.sh,v 1.25 2024/12/07 20:48:46 tom Exp $ + # + # Script to generate 'expanded.c', a dummy source that contains functions + # corresponding to complex macros used in this library. By making functions, +@@ -127,7 +127,12 @@ + EOF + + $preprocessor $TMP 2>/dev/null | \ +- sed -e '1,/^IGNORE$/d' -e 's/^@/#/' -e 's/^#[ ]*if_/#if /' -e "s,$TMP,expanded.c," ++ sed -e '1,/^IGNORE$/d' \ ++ -e 's/^@/#/' \ ++ -e 's/^#[ ]*if_/#if /' \ ++ -e "s,$TMP,expanded.c," \ ++ -e 's/[ ][ ]*$//' \ ++ -e '/^#[ ]*[0-9]/d' + + cat <<EOF + #else /* ! NCURSES_EXPANDED */ +Index: ncurses/tty/hardscroll.c +Prereq: 1.58 +--- ncurses-6.5-20241130+/ncurses/tty/hardscroll.c 2023-09-09 16:04:08.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tty/hardscroll.c 2024-12-07 20:06:49.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020,2023 Thomas E. Dickey * ++ * Copyright 2020-2023,2024 Thomas E. Dickey * + * Copyright 1998-2015,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -148,7 +148,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: hardscroll.c,v 1.58 2023/09/09 16:04:08 Nicholas.Marriott Exp $") ++MODULE_ID("$Id: hardscroll.c,v 1.59 2024/12/07 20:06:49 tom Exp $") + + #if defined(SCROLLDEBUG) || defined(HASHDEBUG) + +@@ -169,7 +169,7 @@ + if OLDNUM(n) == _NEWINDEX, then the line n in new, not shifted from + somewhere. */ + NCURSES_EXPORT_VAR (int *) +- _nc_oldnums = 0; /* obsolete: keep for ABI compat */ ++ _nc_oldnums = NULL; /* obsolete: keep for ABI compat */ + + # if USE_HASHMAP + # define oldnums(sp) (sp)->_oldnum_list +@@ -196,7 +196,7 @@ + /* get enough storage */ + assert(OLDNUM_SIZE(SP_PARM) >= 0); + assert(screen_lines(SP_PARM) > 0); +- if ((oldnums(SP_PARM) == 0) ++ if ((oldnums(SP_PARM) == NULL) + || (OLDNUM_SIZE(SP_PARM) < screen_lines(SP_PARM))) { + int need_lines = ((OLDNUM_SIZE(SP_PARM) < screen_lines(SP_PARM)) + ? screen_lines(SP_PARM) +@@ -308,11 +308,11 @@ + /* dump the state of the real and virtual oldnum fields */ + { + if (USE_TRACEF(TRACE_UPDATE | TRACE_MOVE)) { +- char *buf = 0; ++ char *buf = NULL; + size_t want = ((size_t) screen_lines(SP_PARM) + 1) * 4; + (void) SP_PARM; + +- if ((buf = typeMalloc(char, want)) != 0) { ++ if ((buf = typeMalloc(char, want)) != NULL) { + int n; + + *buf = '\0'; +Index: ncurses/tty/hashmap.c +Prereq: 1.72 +--- ncurses-6.5-20241130+/ncurses/tty/hashmap.c 2024-07-27 19:22:23.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tty/hashmap.c 2024-12-07 17:18:07.000000000 +0000 +@@ -74,7 +74,7 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: hashmap.c,v 1.72 2024/07/27 19:22:23 tom Exp $") ++MODULE_ID("$Id: hashmap.c,v 1.73 2024/12/07 17:18:07 tom Exp $") + + #ifdef HASHDEBUG + +@@ -311,10 +311,10 @@ + } + } else { + /* re-hash all */ +- if (oldhash(SP_PARM) == 0) ++ if (oldhash(SP_PARM) == NULL) + oldhash(SP_PARM) = typeCalloc(unsigned long, + (size_t) screen_lines(SP_PARM)); +- if (newhash(SP_PARM) == 0) ++ if (newhash(SP_PARM) == NULL) + newhash(SP_PARM) = typeCalloc(unsigned long, + (size_t) screen_lines(SP_PARM)); + if (!oldhash(SP_PARM) || !newhash(SP_PARM)) { +Index: ncurses/tty/lib_mvcur.c +Prereq: 1.161 +--- ncurses-6.5-20241130+/ncurses/tty/lib_mvcur.c 2023-09-16 16:29:02.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tty/lib_mvcur.c 2024-12-07 20:06:49.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2018-2022,2023 Thomas E. Dickey * ++ * Copyright 2018-2023,2024 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -160,7 +160,7 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_mvcur.c,v 1.161 2023/09/16 16:29:02 tom Exp $") ++MODULE_ID("$Id: lib_mvcur.c,v 1.162 2024/12/07 20:06:49 tom Exp $") + + #define WANT_CHAR(sp, y, x) NewScreen(sp)->_line[y].text[x] /* desired state */ + +@@ -222,7 +222,7 @@ + NCURSES_SP_NAME(_nc_msec_cost) (NCURSES_SP_DCLx const char *const cap, int affcnt) + /* compute the cost of a given operation */ + { +- if (cap == 0) ++ if (cap == NULL) + return (INFINITY); + else { + const char *cp; +@@ -364,7 +364,7 @@ + SP_PARM->_home_cost = CostOf(cursor_home, 0); + SP_PARM->_ll_cost = CostOf(cursor_to_ll, 0); + #if USE_HARD_TABS +- if (getenv("NCURSES_NO_HARD_TABS") == 0 ++ if (getenv("NCURSES_NO_HARD_TABS") == NULL + && dest_tabs_magic_smso == 0 + && HasHardTabs()) { + SP_PARM->_ht_cost = CostOf(tab, 0); +@@ -461,12 +461,12 @@ + * nested on the various terminals (vt100, xterm, etc.) which use this + * feature. + */ +- if (save_cursor != 0 +- && enter_ca_mode != 0 +- && strstr(enter_ca_mode, save_cursor) != 0) { ++ if (save_cursor != NULL ++ && enter_ca_mode != NULL ++ && strstr(enter_ca_mode, save_cursor) != NULL) { + T(("...suppressed sc/rc capability due to conflict with smcup/rmcup")); +- save_cursor = 0; +- restore_cursor = 0; ++ save_cursor = NULL; ++ restore_cursor = NULL; + } + + /* +@@ -580,7 +580,7 @@ + if (to_y != from_y) { + vcost = INFINITY; + +- if (row_address != 0 ++ if (row_address != NULL + && _nc_safe_strcat(target, TIPARM_1(row_address, to_y))) { + vcost = SP_PARM->_vpa_cost; + } +@@ -984,7 +984,7 @@ + TR(TRACE_CALLS | TRACE_MOVE, (T_CALLED("_nc_real_mvcur(%p,%d,%d,%d,%d)"), + (void *) SP_PARM, yold, xold, ynew, xnew)); + +- if (SP_PARM == 0) { ++ if (SP_PARM == NULL) { + code = ERR; + } else if (yold == ynew && xold == xnew) { + code = OK; +@@ -1079,7 +1079,7 @@ + * external calls. Flush the output if the screen has not been + * initialized, e.g., when used from low-level terminfo programs. + */ +- if ((SP_PARM != 0) && (SP_PARM->_endwin == ewInitial)) ++ if ((SP_PARM != NULL) && (SP_PARM->_endwin == ewInitial)) + NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG); + return rc; + } +Index: ncurses/tty/lib_tstp.c +Prereq: 1.54 +--- ncurses-6.5-20241130+/ncurses/tty/lib_tstp.c 2022-12-24 22:22:10.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tty/lib_tstp.c 2024-12-07 20:06:49.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020-2021,2022 Thomas E. Dickey * ++ * Copyright 2020-2022,2024 Thomas E. Dickey * + * Copyright 1998-2014,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -43,7 +43,7 @@ + + #include <SigAction.h> + +-MODULE_ID("$Id: lib_tstp.c,v 1.54 2022/12/24 22:22:10 tom Exp $") ++MODULE_ID("$Id: lib_tstp.c,v 1.55 2024/12/07 20:06:49 tom Exp $") + + #if defined(SIGTSTP) && (HAVE_SIGACTION || HAVE_SIGVEC) + #define USE_SIGTSTP 1 +@@ -159,7 +159,7 @@ + * + * Don't do this if we're not in curses - + */ +- if (sp != 0 && (sp->_endwin == ewRunning)) ++ if (sp != NULL && (sp->_endwin == ewRunning)) + #if HAVE_TCGETPGRP + if (tcgetpgrp(STDIN_FILENO) == getpgrp()) + #endif +@@ -269,7 +269,7 @@ + { + SCREEN *scan; + for (each_screen(scan)) { +- if (scan->_ofp != 0 ++ if (scan->_ofp != NULL + && NC_ISATTY(fileno(scan->_ofp))) { + scan->_outch = NCURSES_SP_NAME(_nc_outch); + } +Index: ncurses/tty/lib_twait.c +Prereq: 1.82 +--- ncurses-6.5-20241130+/ncurses/tty/lib_twait.c 2024-10-05 22:47:12.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tty/lib_twait.c 2024-12-07 21:02:00.000000000 +0000 +@@ -76,7 +76,7 @@ + #endif + #undef CUR + +-MODULE_ID("$Id: lib_twait.c,v 1.82 2024/10/05 22:47:12 tom Exp $") ++MODULE_ID("$Id: lib_twait.c,v 1.83 2024/12/07 21:02:00 tom Exp $") + + /* + * Returns an elapsed time, in milliseconds (if possible). +@@ -120,7 +120,7 @@ + { + int event_delay = -1; + +- if (evl != 0) { ++ if (evl != NULL) { + int n; + + for (n = 0; n < evl->count; ++n) { +Index: ncurses/tty/lib_vidattr.c +Prereq: 1.79 +--- ncurses-6.5-20241130+/ncurses/tty/lib_vidattr.c 2023-04-28 20:59:26.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tty/lib_vidattr.c 2024-12-07 20:08:15.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2018-2020,2023 Thomas E. Dickey * ++ * Copyright 2018-2023,2024 Thomas E. Dickey * + * Copyright 1998-2014,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -70,7 +70,7 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_vidattr.c,v 1.79 2023/04/28 20:59:26 tom Exp $") ++MODULE_ID("$Id: lib_vidattr.c,v 1.80 2024/12/07 20:08:15 tom Exp $") + + #define doPut(mode) \ + TPUTS_TRACE(#mode); \ +@@ -114,9 +114,9 @@ + attr_t turn_on, turn_off; + int pair; + bool reverse = FALSE; +- bool can_color = (SP_PARM == 0 || SP_PARM->_coloron); ++ bool can_color = (SP_PARM == NULL || SP_PARM->_coloron); + #if NCURSES_EXT_FUNCS +- bool fix_pair0 = (SP_PARM != 0 && SP_PARM->_coloron && !SP_PARM->_default_color); ++ bool fix_pair0 = (SP_PARM != NULL && SP_PARM->_coloron && !SP_PARM->_default_color); + #else + #define fix_pair0 FALSE + #endif +@@ -134,7 +134,7 @@ + + TR(TRACE_ATTRS, ("previous attribute was %s", _traceattr(PreviousAttr))); + +- if ((SP_PARM != 0) ++ if ((SP_PARM != NULL) + && (magic_cookie_glitch > 0)) { + #if USE_XMC_SUPPORT + static const chtype table[] = +Index: ncurses/tty/tty_update.c +Prereq: 1.316 +--- ncurses-6.5-20241130+/ncurses/tty/tty_update.c 2024-02-04 00:09:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/tty/tty_update.c 2024-12-07 18:00:11.000000000 +0000 +@@ -85,7 +85,7 @@ + + #include <ctype.h> + +-MODULE_ID("$Id: tty_update.c,v 1.316 2024/02/04 00:09:34 tom Exp $") ++MODULE_ID("$Id: tty_update.c,v 1.317 2024/12/07 18:00:11 tom Exp $") + + /* + * This define controls the line-breakout optimization. Every once in a +@@ -262,7 +262,7 @@ + || (SP_PARM->_legacy_coding > 1 && CharOf(CHDEREF(ch)) >= 128) + || (AttrOf(attr) & A_ALTCHARSET + && ((CharOfD(ch) < ACS_LEN +- && SP_PARM->_acs_map != 0 ++ && SP_PARM->_acs_map != NULL + && SP_PARM->_acs_map[CharOfD(ch)] != 0) + || (CharOfD(ch) >= 128))))) { + ; +@@ -275,7 +275,7 @@ + #endif + + if ((AttrOf(attr) & A_ALTCHARSET) +- && SP_PARM->_acs_map != 0 ++ && SP_PARM->_acs_map != NULL + && ((CharOfD(ch) < ACS_LEN) + #if !NCURSES_WCWIDTH_GRAPHICS + || is_wacs_value(CharOfD(ch)) +@@ -621,7 +621,7 @@ + } else { + return 1; /* cursor stays in the middle */ + } +- } else if (repeat_char != 0 && ++ } else if (repeat_char != NULL && + #if BSD_TPUTS + !isdigit(UChar(CharOf(ntext0))) && + #endif +@@ -643,7 +643,7 @@ + UpdateAttrs(SP_PARM, ntext0); + temp = ntext0; + if ((AttrOf(temp) & A_ALTCHARSET) && +- SP_PARM->_acs_map != 0 && ++ SP_PARM->_acs_map != NULL && + (SP_PARM->_acs_map[CharOf(temp)] & A_CHARTEXT) != 0) { + SetChar(temp, + (SP_PARM->_acs_map[CharOf(ntext0)] & A_CHARTEXT), +@@ -745,7 +745,7 @@ + + _nc_lock_global(update); + +- if (SP_PARM == 0) { ++ if (SP_PARM == NULL) { + _nc_unlock_global(update); + returnCode(ERR); + } +@@ -762,7 +762,7 @@ + if (SP_PARM == CURRENT_SCREEN) { + #endif + #define SyncScreens(internal,exported) \ +- if (internal == 0) internal = exported; \ ++ if (internal == NULL) internal = exported; \ + if (internal != exported) exported = internal + + SyncScreens(CurScreen(SP_PARM), curscr); +@@ -773,9 +773,9 @@ + #endif + #endif /* !USE_REENTRANT */ + +- if (CurScreen(SP_PARM) == 0 +- || NewScreen(SP_PARM) == 0 +- || StdScreen(SP_PARM) == 0) { ++ if (CurScreen(SP_PARM) == NULL ++ || NewScreen(SP_PARM) == NULL ++ || StdScreen(SP_PARM) == NULL) { + _nc_unlock_global(update); + returnCode(ERR); + } +@@ -1132,7 +1132,7 @@ + ClrUpdate(NCURSES_SP_DCL0) + { + TR(TRACE_UPDATE, (T_CALLED("ClrUpdate"))); +- if (0 != SP_PARM) { ++ if (NULL != SP_PARM) { + int i; + NCURSES_CH_T blank = ClrBlank(NCURSES_SP_ARGx StdScreen(SP_PARM)); + int nonempty = Min(screen_lines(SP_PARM), +@@ -1159,7 +1159,7 @@ + static void + ClrToEOL(NCURSES_SP_DCLx NCURSES_CH_T blank, int needclear) + { +- if (CurScreen(SP_PARM) != 0 ++ if (CurScreen(SP_PARM) != NULL + && SP_PARM->_cursrow >= 0) { + int j; + +@@ -2223,7 +2223,7 @@ + NCURSES_EXPORT(void) + NCURSES_SP_NAME(_nc_screen_wrap) (NCURSES_SP_DCL0) + { +- if (SP_PARM != 0) { ++ if (SP_PARM != NULL) { + + UpdateAttrs(SP_PARM, normal); + #if NCURSES_EXT_FUNCS +@@ -2265,7 +2265,7 @@ + NCURSES_EXPORT(void) + NCURSES_SP_NAME(_nc_do_xmc_glitch) (NCURSES_SP_DCLx attr_t previous) + { +- if (SP_PARM != 0) { ++ if (SP_PARM != NULL) { + attr_t chg = XMC_CHANGES(previous ^ AttrOf(SCREEN_ATTRS(SP_PARM))); + + while (chg != 0) { +Index: ncurses/wcwidth.h +Prereq: 1.7 +--- ncurses-6.5-20241130+/ncurses/wcwidth.h 2024-09-21 15:49:15.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/wcwidth.h 2024-12-07 16:20:09.000000000 +0000 +@@ -1,4 +1,4 @@ +-/* $Id: wcwidth.h,v 1.7 2024/09/21 15:49:15 tom Exp $ */ ++/* $Id: wcwidth.h,v 1.8 2024/12/07 16:20:09 tom Exp $ */ + + /* + * Copyright 2002-2023,2024 by Thomas E. Dickey +@@ -230,7 +230,7 @@ + + /* sorted list of non-overlapping intervals of non-spacing characters */ + /* generated by +- * uniset +cat=Me +cat=Mn +0600-0605 +061C +06DD +070F +1160-11FF +D7B0-D7C6 +D7CB-D7FB c ++ * uniset +cat=Me +cat=Mn +0600-0605 +061C +06DD +070F +1160-11FF +D7B0-D7C6 +D7CB-D7FB c + */ + /* *INDENT-OFF* */ + /* generated by run-uniset 1.9 */ +Index: ncurses/widechar/lib_add_wch.c +Prereq: 1.19 +--- ncurses-6.5-20241130+/ncurses/widechar/lib_add_wch.c 2024-07-27 19:22:23.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/widechar/lib_add_wch.c 2024-12-07 18:00:11.000000000 +0000 +@@ -40,7 +40,7 @@ + #include <wctype.h> + #endif + +-MODULE_ID("$Id: lib_add_wch.c,v 1.19 2024/07/27 19:22:23 tom Exp $") ++MODULE_ID("$Id: lib_add_wch.c,v 1.20 2024/12/07 18:00:11 tom Exp $") + + /* clone/adapt lib_addch.c */ + static const cchar_t blankchar = NewChar(BLANK_TEXT); +@@ -384,7 +384,7 @@ + win->_flags &= ~_WRAPPED; + break; + default: +- if ((s = wunctrl(&ch)) != 0) { ++ if ((s = wunctrl(&ch)) != NULL) { + while (*s) { + cchar_t sch; + SetChar(sch, *s++, AttrOf(ch)); +Index: ncurses/widechar/lib_box_set.c +Prereq: 1.7 +--- ncurses-6.5-20241130+/ncurses/widechar/lib_box_set.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/widechar/lib_box_set.c 2024-12-07 20:08:15.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 2002-2009,2011 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -40,7 +40,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_box_set.c,v 1.7 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: lib_box_set.c,v 1.8 2024/12/07 20:08:15 tom Exp $") + + NCURSES_EXPORT(int) + wborder_set(WINDOW *win, +@@ -67,7 +67,7 @@ + if (!win) + returnCode(ERR); + +-#define RENDER_WITH_DEFAULT(ch,def) w ##ch = _nc_render(win, (ch == 0) ? *(const ARG_CH_T)def : *ch) ++#define RENDER_WITH_DEFAULT(ch,def) w ##ch = _nc_render(win, (ch == NULL) ? *(const ARG_CH_T)def : *ch) + + RENDER_WITH_DEFAULT(ls, WACS_VLINE); + RENDER_WITH_DEFAULT(rs, WACS_VLINE); +Index: ncurses/widechar/lib_cchar.c +Prereq: 1.39 +--- ncurses-6.5-20241130+/ncurses/widechar/lib_cchar.c 2024-07-27 19:22:23.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/widechar/lib_cchar.c 2024-12-07 18:07:52.000000000 +0000 +@@ -37,7 +37,7 @@ + #include <curses.priv.h> + #include <wchar.h> + +-MODULE_ID("$Id: lib_cchar.c,v 1.39 2024/07/27 19:22:23 tom Exp $") ++MODULE_ID("$Id: lib_cchar.c,v 1.40 2024/12/07 18:07:52 tom Exp $") + + /* + * The SuSv2 description leaves some room for interpretation. We'll assume wch +@@ -135,7 +135,7 @@ + * If the value is not a null, return the length plus 1 for null. + */ + code = (len < CCHARW_MAX) ? (len + 1) : CCHARW_MAX; +- } else if (attrs == 0 || pair_arg == 0) { ++ } else if (attrs == NULL || pair_arg == NULL) { + code = ERR; + } else if (len >= 0) { + int color_pair; +Index: ncurses/widechar/lib_get_wch.c +Prereq: 1.26 +--- ncurses-6.5-20241130+/ncurses/widechar/lib_get_wch.c 2021-04-17 16:12:54.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/widechar/lib_get_wch.c 2024-12-07 20:08:15.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020,2021 Thomas E. Dickey * ++ * Copyright 2020-2021,2024 Thomas E. Dickey * + * Copyright 2002-2011,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -41,7 +41,7 @@ + #include <curses.priv.h> + #include <ctype.h> + +-MODULE_ID("$Id: lib_get_wch.c,v 1.26 2021/04/17 16:12:54 tom Exp $") ++MODULE_ID("$Id: lib_get_wch.c,v 1.27 2024/12/07 20:08:15 tom Exp $") + + NCURSES_EXPORT(int) + wget_wch(WINDOW *win, wint_t *result) +@@ -62,7 +62,7 @@ + _nc_lock_global(curses); + sp = _nc_screen_of(win); + +- if (sp != 0) { ++ if (sp != NULL) { + size_t count = 0; + + for (;;) { +@@ -112,7 +112,7 @@ + code = ERR; + } + +- if (result != 0) ++ if (result != NULL) + *result = (wint_t) value; + + _nc_unlock_global(curses); +Index: ncurses/widechar/lib_hline_set.c +Prereq: 1.6 +--- ncurses-6.5-20241130+/ncurses/widechar/lib_hline_set.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/widechar/lib_hline_set.c 2024-12-07 20:08:15.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 2002-2010,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -40,7 +40,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_hline_set.c,v 1.6 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: lib_hline_set.c,v 1.7 2024/12/07 20:08:15 tom Exp $") + + NCURSES_EXPORT(int) + whline_set(WINDOW *win, const cchar_t *ch, int n) +@@ -60,7 +60,7 @@ + + CHANGED_RANGE(line, start, end); + +- if (ch == 0) ++ if (ch == NULL) + wch = *WACS_HLINE; + else + wch = *ch; +Index: ncurses/widechar/lib_in_wch.c +Prereq: 1.7 +--- ncurses-6.5-20241130+/ncurses/widechar/lib_in_wch.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/widechar/lib_in_wch.c 2024-12-07 20:08:15.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 2002-2009,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -40,7 +40,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_in_wch.c,v 1.7 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: lib_in_wch.c,v 1.8 2024/12/07 20:08:15 tom Exp $") + + NCURSES_EXPORT(int) + win_wch(WINDOW *win, cchar_t *wcval) +@@ -49,8 +49,8 @@ + + TR(TRACE_CCALLS, (T_CALLED("win_wch(%p,%p)"), (void *) win, (void *) wcval)); + +- if (win != 0 +- && wcval != 0) { ++ if (win != NULL ++ && wcval != NULL) { + int row, col; + + getyx(win, row, col); +Index: ncurses/widechar/lib_in_wchnstr.c +Prereq: 1.10 +--- ncurses-6.5-20241130+/ncurses/widechar/lib_in_wchnstr.c 2024-07-27 19:23:21.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/widechar/lib_in_wchnstr.c 2024-12-07 18:03:14.000000000 +0000 +@@ -40,7 +40,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_in_wchnstr.c,v 1.10 2024/07/27 19:23:21 tom Exp $") ++MODULE_ID("$Id: lib_in_wchnstr.c,v 1.11 2024/12/07 18:03:14 tom Exp $") + + NCURSES_EXPORT(int) + win_wchnstr(WINDOW *win, cchar_t *wchstr, int n) +@@ -48,8 +48,8 @@ + int code = OK; + + T((T_CALLED("win_wchnstr(%p,%p,%d)"), (void *) win, (void *) wchstr, n)); +- if (win != 0 +- && wchstr != 0) { ++ if (win != NULL ++ && wchstr != NULL) { + const NCURSES_CH_T *src; + int row, col; + int j, k, limit; +Index: ncurses/widechar/lib_ins_wch.c +Prereq: 1.30 +--- ncurses-6.5-20241130+/ncurses/widechar/lib_ins_wch.c 2024-07-27 19:22:23.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/widechar/lib_ins_wch.c 2024-12-07 18:03:14.000000000 +0000 +@@ -40,7 +40,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_ins_wch.c,v 1.30 2024/07/27 19:22:23 tom Exp $") ++MODULE_ID("$Id: lib_ins_wch.c,v 1.31 2024/12/07 18:03:14 tom Exp $") + + /* + * Insert the given character, updating the current location to simplify +@@ -87,7 +87,7 @@ + + T((T_CALLED("wins_wch(%p, %s)"), (void *) win, _tracecchar_t(wch))); + +- if (win != 0) { ++ if (win != NULL) { + NCURSES_SIZE_T oy = win->_cury; + NCURSES_SIZE_T ox = win->_curx; + +@@ -108,8 +108,8 @@ + T((T_CALLED("wins_nwstr(%p,%s,%d)"), + (void *) win, _nc_viswbufn(wstr, n), n)); + +- if (win != 0 +- && wstr != 0 ++ if (win != NULL ++ && wstr != NULL + && n != 0) { + + if (n < 0) { +Index: ncurses/widechar/lib_inwstr.c +Prereq: 1.11 +--- ncurses-6.5-20241130+/ncurses/widechar/lib_inwstr.c 2024-07-27 19:02:27.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/widechar/lib_inwstr.c 2024-12-07 18:03:14.000000000 +0000 +@@ -40,7 +40,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_inwstr.c,v 1.11 2024/07/27 19:02:27 tom Exp $") ++MODULE_ID("$Id: lib_inwstr.c,v 1.12 2024/12/07 18:03:14 tom Exp $") + + NCURSES_EXPORT(int) + winnwstr(WINDOW *win, wchar_t *wstr, int n) +@@ -49,7 +49,7 @@ + const cchar_t *text; + + T((T_CALLED("winnwstr(%p,%p,%d)"), (void *) win, (void *) wstr, n)); +- if (wstr != 0) { ++ if (wstr != NULL) { + if (win) { + int row, col; + int last = 0; +@@ -99,7 +99,7 @@ + int result = ERR; + + T((T_CALLED("winwstr(%p,%p)"), (void *) win, (void *) wstr)); +- if (win != 0) { ++ if (win != NULL) { + result = winnwstr(win, wstr, + CCHARW_MAX * (win->_maxx - win->_curx + 1)); + } +Index: ncurses/widechar/lib_pecho_wchar.c +Prereq: 1.4 +--- ncurses-6.5-20241130+/ncurses/widechar/lib_pecho_wchar.c 2021-10-23 17:07:56.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/widechar/lib_pecho_wchar.c 2024-12-07 20:08:15.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020,2021 Thomas E. Dickey * ++ * Copyright 2020-2021,2024 Thomas E. Dickey * + * Copyright 2004,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -33,14 +33,14 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_pecho_wchar.c,v 1.4 2021/10/23 17:07:56 tom Exp $") ++MODULE_ID("$Id: lib_pecho_wchar.c,v 1.5 2024/12/07 20:08:15 tom Exp $") + + NCURSES_EXPORT(int) + pecho_wchar(WINDOW *pad, const cchar_t *wch) + { + T((T_CALLED("pecho_wchar(%p, %s)"), (void *) pad, _tracech_t(wch))); + +- if (pad == 0) ++ if (pad == NULL) + returnCode(ERR); + + if (!IS_PAD(pad)) +Index: ncurses/widechar/lib_slk_wset.c +Prereq: 1.15 +--- ncurses-6.5-20241130+/ncurses/widechar/lib_slk_wset.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/widechar/lib_slk_wset.c 2024-12-07 20:08:15.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 2003-2011,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -41,7 +41,7 @@ + #include <wctype.h> + #endif + +-MODULE_ID("$Id: lib_slk_wset.c,v 1.15 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: lib_slk_wset.c,v 1.16 2024/12/07 20:08:15 tom Exp $") + + NCURSES_EXPORT(int) + slk_wset(int i, const wchar_t *astr, int format) +@@ -52,7 +52,7 @@ + + T((T_CALLED("slk_wset(%d, %s, %d)"), i, _nc_viswbuf(astr), format)); + +- if (astr != 0) { ++ if (astr != NULL) { + size_t arglen; + + init_mb(state); +@@ -61,7 +61,7 @@ + if ((arglen = wcsrtombs(NULL, &str, (size_t) 0, &state)) != (size_t) -1) { + char *mystr; + +- if ((mystr = (char *) _nc_doalloc(0, arglen + 1)) != 0) { ++ if ((mystr = (char *) _nc_doalloc(NULL, arglen + 1)) != NULL) { + str = astr; + if (wcsrtombs(mystr, &str, arglen, &state) != (size_t) -1) { + /* glibc documentation claims that the terminating L'\0' +Index: ncurses/widechar/lib_unget_wch.c +Prereq: 1.18 +--- ncurses-6.5-20241130+/ncurses/widechar/lib_unget_wch.c 2023-06-03 12:50:52.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/widechar/lib_unget_wch.c 2024-12-07 20:08:15.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020,2023 Thomas E. Dickey * ++ * Copyright 2020-2023,2024 Thomas E. Dickey * + * Copyright 2002-2011,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -40,7 +40,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_unget_wch.c,v 1.18 2023/06/03 12:50:52 tom Exp $") ++MODULE_ID("$Id: lib_unget_wch.c,v 1.19 2024/12/07 20:08:15 tom Exp $") + + /* + * Wrapper for wcrtomb() which obtains the length needed for the given +@@ -51,7 +51,7 @@ + { + int result; + +- if (target == 0) { ++ if (target == NULL) { + wchar_t temp[2]; + const wchar_t *tempp = temp; + temp[0] = source; +@@ -75,13 +75,13 @@ + T((T_CALLED("unget_wch(%p, %#lx)"), (void *) SP_PARM, (unsigned long) wch)); + + init_mb(state); +- length = _nc_wcrtomb(0, wch, &state); ++ length = _nc_wcrtomb(NULL, wch, &state); + + if (length != (size_t) (-1) + && length != 0) { + char *string; + +- if ((string = (char *) malloc(length)) != 0) { ++ if ((string = (char *) malloc(length)) != NULL) { + int n; + + init_mb(state); +Index: ncurses/widechar/lib_vid_attr.c +Prereq: 1.31 +--- ncurses-6.5-20241130+/ncurses/widechar/lib_vid_attr.c 2023-04-28 20:59:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/widechar/lib_vid_attr.c 2024-12-07 20:08:59.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2018-2020,2023 Thomas E. Dickey * ++ * Copyright 2018-2023,2024 Thomas E. Dickey * + * Copyright 2002-2014,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -37,7 +37,7 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_vid_attr.c,v 1.31 2023/04/28 20:59:34 tom Exp $") ++MODULE_ID("$Id: lib_vid_attr.c,v 1.32 2024/12/07 20:08:59 tom Exp $") + + #define doPut(mode) \ + TPUTS_TRACE(#mode); \ +@@ -87,9 +87,9 @@ + + attr_t turn_on, turn_off; + bool reverse = FALSE; +- bool can_color = (SP_PARM == 0 || SP_PARM->_coloron); ++ bool can_color = (SP_PARM == NULL || SP_PARM->_coloron); + #if NCURSES_EXT_FUNCS +- bool fix_pair0 = (SP_PARM != 0 && SP_PARM->_coloron && !SP_PARM->_default_color); ++ bool fix_pair0 = (SP_PARM != NULL && SP_PARM->_coloron && !SP_PARM->_default_color); + #else + #define fix_pair0 FALSE + #endif +@@ -193,15 +193,15 @@ + TPUTS_TRACE("set_attributes"); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + TIPARM_9(set_attributes, +- (newmode & A_STANDOUT) != 0, +- (newmode & A_UNDERLINE) != 0, +- (newmode & A_REVERSE) != 0, +- (newmode & A_BLINK) != 0, +- (newmode & A_DIM) != 0, +- (newmode & A_BOLD) != 0, +- (newmode & A_INVIS) != 0, +- (newmode & A_PROTECT) != 0, +- (newmode & A_ALTCHARSET) != 0), ++ (newmode & A_STANDOUT) != 0, ++ (newmode & A_UNDERLINE) != 0, ++ (newmode & A_REVERSE) != 0, ++ (newmode & A_BLINK) != 0, ++ (newmode & A_DIM) != 0, ++ (newmode & A_BOLD) != 0, ++ (newmode & A_INVIS) != 0, ++ (newmode & A_PROTECT) != 0, ++ (newmode & A_ALTCHARSET) != 0), + 1, outc); + previous_attr &= ALL_BUT_COLOR; + previous_pair = 0; +Index: ncurses/widechar/lib_vline_set.c +Prereq: 1.6 +--- ncurses-6.5-20241130+/ncurses/widechar/lib_vline_set.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/widechar/lib_vline_set.c 2024-12-07 20:08:15.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 2002-2010,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -40,7 +40,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_vline_set.c,v 1.6 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: lib_vline_set.c,v 1.7 2024/12/07 20:08:15 tom Exp $") + + NCURSES_EXPORT(int) + wvline_set(WINDOW *win, const cchar_t *ch, int n) +@@ -58,7 +58,7 @@ + if (end > win->_maxy) + end = win->_maxy; + +- if (ch == 0) ++ if (ch == NULL) + wch = *WACS_VLINE; + else + wch = *ch; +Index: ncurses/widechar/lib_wacs.c +Prereq: 1.20 +--- ncurses-6.5-20241130+/ncurses/widechar/lib_wacs.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/widechar/lib_wacs.c 2024-12-07 20:08:32.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2018,2020 Thomas E. Dickey * ++ * Copyright 2018-2020,2024 Thomas E. Dickey * + * Copyright 2002-2015,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -33,9 +33,9 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_wacs.c,v 1.20 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: lib_wacs.c,v 1.21 2024/12/07 20:08:32 tom Exp $") + +-NCURSES_EXPORT_VAR(cchar_t) * _nc_wacs = 0; ++NCURSES_EXPORT_VAR(cchar_t) * _nc_wacs = NULL; + + NCURSES_EXPORT(void) + _nc_init_wacs(void) +@@ -119,7 +119,7 @@ + T(("initializing WIDE-ACS map (Unicode is%s active)", + active ? "" : " not")); + +- if ((_nc_wacs = typeCalloc(cchar_t, ACS_LEN)) != 0) { ++ if ((_nc_wacs = typeCalloc(cchar_t, ACS_LEN)) != NULL) { + unsigned n; + + for (n = 0; n < SIZEOF(table); ++n) { +Index: ncurses/widechar/lib_wunctrl.c +Prereq: 1.18 +--- ncurses-6.5-20241130+/ncurses/widechar/lib_wunctrl.c 2024-07-27 19:23:21.000000000 +0000 ++++ ncurses-6.5-20241207/ncurses/widechar/lib_wunctrl.c 2024-12-07 18:03:14.000000000 +0000 +@@ -36,7 +36,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_wunctrl.c,v 1.18 2024/07/27 19:23:21 tom Exp $") ++MODULE_ID("$Id: lib_wunctrl.c,v 1.19 2024/12/07 18:03:14 tom Exp $") + + NCURSES_EXPORT(wchar_t *) + NCURSES_SP_NAME(wunctrl) (NCURSES_SP_DCLx cchar_t *wc) +@@ -44,9 +44,9 @@ + static wchar_t str[CCHARW_MAX + 1]; + wchar_t *result; + +- if (wc == 0) { +- result = 0; +- } else if (SP_PARM != 0 && Charable(*wc)) { ++ if (wc == NULL) { ++ result = NULL; ++ } else if (SP_PARM != NULL && Charable(*wc)) { + wchar_t *wsp; + const char *p = + NCURSES_SP_NAME(unctrl) (NCURSES_SP_ARGx +Index: package/debian-mingw/changelog +--- ncurses-6.5-20241130+/package/debian-mingw/changelog 2024-11-27 21:55:07.000000000 +0000 ++++ ncurses-6.5-20241207/package/debian-mingw/changelog 2024-12-07 11:51:44.000000000 +0000 +@@ -1,8 +1,8 @@ +-ncurses6td (6.5+20241130) unstable; urgency=low ++ncurses6td (6.5+20241207) unstable; urgency=low + + * latest weekly patch + +- -- Thomas E. Dickey <dickey@invisible-island.net> Wed, 27 Nov 2024 16:55:07 -0500 ++ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 07 Dec 2024 06:51:44 -0500 + + ncurses6 (5.9+20131005) unstable; urgency=low + +Index: package/debian-mingw64/changelog +--- ncurses-6.5-20241130+/package/debian-mingw64/changelog 2024-11-27 21:55:07.000000000 +0000 ++++ ncurses-6.5-20241207/package/debian-mingw64/changelog 2024-12-07 11:51:44.000000000 +0000 +@@ -1,8 +1,8 @@ +-ncurses6td (6.5+20241130) unstable; urgency=low ++ncurses6td (6.5+20241207) unstable; urgency=low + + * latest weekly patch + +- -- Thomas E. Dickey <dickey@invisible-island.net> Wed, 27 Nov 2024 16:55:07 -0500 ++ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 07 Dec 2024 06:51:44 -0500 + + ncurses6 (5.9+20131005) unstable; urgency=low + +Index: package/debian/changelog +--- ncurses-6.5-20241130+/package/debian/changelog 2024-11-27 21:55:07.000000000 +0000 ++++ ncurses-6.5-20241207/package/debian/changelog 2024-12-07 11:51:44.000000000 +0000 +@@ -1,8 +1,8 @@ +-ncurses6td (6.5+20241130) unstable; urgency=low ++ncurses6td (6.5+20241207) unstable; urgency=low + + * latest weekly patch + +- -- Thomas E. Dickey <dickey@invisible-island.net> Wed, 27 Nov 2024 16:55:07 -0500 ++ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 07 Dec 2024 06:51:44 -0500 + + ncurses6 (5.9+20120608) unstable; urgency=low + +Index: package/mingw-ncurses.nsi +Prereq: 1.678 +--- ncurses-6.5-20241130+/package/mingw-ncurses.nsi 2024-11-27 21:55:07.000000000 +0000 ++++ ncurses-6.5-20241207/package/mingw-ncurses.nsi 2024-12-07 11:51:44.000000000 +0000 +@@ -1,4 +1,4 @@ +-; $Id: mingw-ncurses.nsi,v 1.678 2024/11/27 21:55:07 tom Exp $
++; $Id: mingw-ncurses.nsi,v 1.679 2024/12/07 11:51:44 tom Exp $
+
+ ; TODO add examples
+ ; TODO bump ABI to 6
+@@ -10,7 +10,7 @@ + !define VERSION_MAJOR "6"
+ !define VERSION_MINOR "5"
+ !define VERSION_YYYY "2024"
+-!define VERSION_MMDD "1130"
++!define VERSION_MMDD "1207"
+ !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
+
+ !define MY_ABI "5"
+Index: package/mingw-ncurses.spec +--- ncurses-6.5-20241130+/package/mingw-ncurses.spec 2024-11-27 21:55:07.000000000 +0000 ++++ ncurses-6.5-20241207/package/mingw-ncurses.spec 2024-12-07 11:51:44.000000000 +0000 +@@ -3,7 +3,7 @@ + Summary: shared libraries for terminal handling + Name: mingw32-ncurses6 + Version: 6.5 +-Release: 20241130 ++Release: 20241207 + License: X11 + Group: Development/Libraries + URL: https://invisible-island.net/ncurses/ +Index: package/ncurses.spec +--- ncurses-6.5-20241130+/package/ncurses.spec 2024-11-27 21:55:07.000000000 +0000 ++++ ncurses-6.5-20241207/package/ncurses.spec 2024-12-07 11:51:44.000000000 +0000 +@@ -1,7 +1,7 @@ + Summary: shared libraries for terminal handling + Name: ncurses6 + Version: 6.5 +-Release: 20241130 ++Release: 20241207 + License: X11 + Group: Development/Libraries + URL: https://invisible-island.net/ncurses/ +Index: package/ncursest.spec +--- ncurses-6.5-20241130+/package/ncursest.spec 2024-11-27 21:55:07.000000000 +0000 ++++ ncurses-6.5-20241207/package/ncursest.spec 2024-12-07 11:51:44.000000000 +0000 +@@ -1,7 +1,7 @@ + Summary: Curses library with POSIX thread support. + Name: ncursest6 + Version: 6.5 +-Release: 20241130 ++Release: 20241207 + License: X11 + Group: Development/Libraries + Source: ncurses-%{version}-%{release}.tgz +Index: panel/p_above.c +Prereq: 1.11 +--- ncurses-6.5-20241130+/panel/p_above.c 2020-05-24 01:40:20.000000000 +0000 ++++ ncurses-6.5-20241207/panel/p_above.c 2024-12-07 23:05:20.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 1998-2010,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -37,11 +37,11 @@ + */ + #include "panel.priv.h" + +-MODULE_ID("$Id: p_above.c,v 1.11 2020/05/24 01:40:20 anonymous.maarten Exp $") ++MODULE_ID("$Id: p_above.c,v 1.12 2024/12/07 23:05:20 tom Exp $") + + #if NCURSES_SP_FUNCS + PANEL_EXPORT(PANEL *) +-ground_panel(SCREEN * sp) ++ground_panel(SCREEN *sp) + { + T((T_CALLED("ground_panel(%p)"), (void *)sp)); + if (sp) +@@ -51,12 +51,12 @@ + if (_nc_bottom_panel) /* this is the pseudo panel */ + returnPanel(_nc_bottom_panel->above); + else +- returnPanel(0); ++ returnPanel(NULL); + } + else + { +- if (0 == CURRENT_SCREEN) +- returnPanel(0); ++ if (NULL == CURRENT_SCREEN) ++ returnPanel(NULL); + else + returnPanel(ground_panel(CURRENT_SCREEN)); + } +@@ -64,7 +64,7 @@ + #endif + + PANEL_EXPORT(PANEL *) +-panel_above(const PANEL * pan) ++panel_above(const PANEL *pan) + { + PANEL *result; + +@@ -78,7 +78,7 @@ + #else + /* if top and bottom are equal, we have no or only the pseudo panel; + if not, we return the panel above the pseudo panel */ +- result = EMPTY_STACK()? (PANEL *) 0 : _nc_bottom_panel->above; ++ result = EMPTY_STACK()? (PANEL *)0 : _nc_bottom_panel->above; + #endif + } + returnPanel(result); +Index: panel/p_below.c +Prereq: 1.11 +--- ncurses-6.5-20241130+/panel/p_below.c 2020-05-24 01:40:20.000000000 +0000 ++++ ncurses-6.5-20241207/panel/p_below.c 2024-12-07 23:05:20.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 1998-2010,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -37,11 +37,11 @@ + */ + #include "panel.priv.h" + +-MODULE_ID("$Id: p_below.c,v 1.11 2020/05/24 01:40:20 anonymous.maarten Exp $") ++MODULE_ID("$Id: p_below.c,v 1.12 2024/12/07 23:05:20 tom Exp $") + + #if NCURSES_SP_FUNCS + PANEL_EXPORT(PANEL *) +-ceiling_panel(SCREEN * sp) ++ceiling_panel(SCREEN *sp) + { + T((T_CALLED("ceiling_panel(%p)"), (void *)sp)); + if (sp) +@@ -49,12 +49,12 @@ + struct panelhook *ph = NCURSES_SP_NAME(_nc_panelhook) (sp); + + /* if top and bottom are equal, we have no or only the pseudo panel */ +- returnPanel(EMPTY_STACK()? (PANEL *) 0 : _nc_top_panel); ++ returnPanel(EMPTY_STACK()? (PANEL *)0 : _nc_top_panel); + } + else + { +- if (0 == CURRENT_SCREEN) +- returnPanel(0); ++ if (NULL == CURRENT_SCREEN) ++ returnPanel(NULL); + else + returnPanel(ceiling_panel(CURRENT_SCREEN)); + } +@@ -62,7 +62,7 @@ + #endif + + PANEL_EXPORT(PANEL *) +-panel_below(const PANEL * pan) ++panel_below(const PANEL *pan) + { + PANEL *result; + +@@ -71,7 +71,7 @@ + { + GetHook(pan); + /* we must not return the pseudo panel */ +- result = Is_Pseudo(pan->below) ? (PANEL *) 0 : pan->below; ++ result = Is_Pseudo(pan->below) ? (PANEL *)0 : pan->below; + } + else + { +@@ -79,7 +79,7 @@ + result = ceiling_panel(CURRENT_SCREEN); + #else + /* if top and bottom are equal, we have no or only the pseudo panel */ +- result = EMPTY_STACK()? (PANEL *) 0 : _nc_top_panel; ++ result = EMPTY_STACK()? (PANEL *)0 : _nc_top_panel; + #endif + } + returnPanel(result); +Index: panel/p_new.c +Prereq: 1.24 +--- ncurses-6.5-20241130+/panel/p_new.c 2021-10-23 15:12:06.000000000 +0000 ++++ ncurses-6.5-20241207/panel/p_new.c 2024-12-07 23:00:37.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020,2021 Thomas E. Dickey * ++ * Copyright 2020-2021,2024 Thomas E. Dickey * + * Copyright 1998-2009,2010 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -39,7 +39,7 @@ + */ + #include "panel.priv.h" + +-MODULE_ID("$Id: p_new.c,v 1.24 2021/10/23 15:12:06 tom Exp $") ++MODULE_ID("$Id: p_new.c,v 1.25 2024/12/07 23:00:37 tom Exp $") + + #ifdef TRACE + static char *stdscr_id; +@@ -86,7 +86,7 @@ + ph->destroy = del_panel; + #endif + _nc_stdscr_pseudo_panel = AllocPanel("root_panel"); +- if (_nc_stdscr_pseudo_panel != 0) ++ if (_nc_stdscr_pseudo_panel != NULL) + { + PANEL *pan = _nc_stdscr_pseudo_panel; + WINDOW *win = SP_PARM->_stdscr; +Index: panel/panel.c +Prereq: 1.30 +--- ncurses-6.5-20241130+/panel/panel.c 2020-09-26 18:05:17.000000000 +0000 ++++ ncurses-6.5-20241207/panel/panel.c 2024-12-07 23:05:20.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 1998-2010,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -37,14 +37,14 @@ + /* panel.c -- implementation of panels library, some core routines */ + #include "panel.priv.h" + +-MODULE_ID("$Id: panel.c,v 1.30 2020/09/26 18:05:17 tom Exp $") ++MODULE_ID("$Id: panel.c,v 1.31 2024/12/07 23:05:20 tom Exp $") + + /*+------------------------------------------------------------------------- + _nc_retrace_panel (pan) + --------------------------------------------------------------------------*/ + #ifdef TRACE + PANEL_EXPORT(PANEL *) +-_nc_retrace_panel(PANEL * pan) ++_nc_retrace_panel(PANEL *pan) + { + T((T_RETURN("%p"), (void *)pan)); + return pan; +@@ -61,7 +61,7 @@ + { + char temp[32]; + +- if (ptr != 0) ++ if (ptr != NULL) + _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) "%p", ptr); + else + _nc_STRCPY(temp, "<null>", sizeof(temp)); +@@ -75,7 +75,7 @@ + --------------------------------------------------------------------------*/ + #ifdef TRACE + PANEL_EXPORT(void) +-_nc_dPanel(const char *text, const PANEL * pan) ++_nc_dPanel(const char *text, const PANEL *pan) + { + _tracef("%s id=%s b=%s a=%s y=%d x=%d", + text, USER_PTR(pan->user, 1), +@@ -90,7 +90,7 @@ + --------------------------------------------------------------------------*/ + #ifdef TRACE + PANEL_EXPORT(void) +-_nc_dStack(const char *fmt, int num, const PANEL * pan) ++_nc_dStack(const char *fmt, int num, const PANEL *pan) + { + char s80[80]; + +@@ -116,7 +116,7 @@ + --------------------------------------------------------------------------*/ + #ifdef TRACE + PANEL_EXPORT(void) +-_nc_Wnoutrefresh(const PANEL * pan) ++_nc_Wnoutrefresh(const PANEL *pan) + { + dPanel("wnoutrefresh", pan); + wnoutrefresh(pan->win); +@@ -128,7 +128,7 @@ + --------------------------------------------------------------------------*/ + #ifdef TRACE + PANEL_EXPORT(void) +-_nc_Touchpan(const PANEL * pan) ++_nc_Touchpan(const PANEL *pan) + { + dPanel("Touchpan", pan); + touchwin(pan->win); +@@ -140,7 +140,7 @@ + --------------------------------------------------------------------------*/ + #ifdef TRACE + PANEL_EXPORT(void) +-_nc_Touchline(const PANEL * pan, int start, int count) ++_nc_Touchline(const PANEL *pan, int start, int count) + { + char s80[80]; + +Index: panel/panel.priv.h +Prereq: 1.30 +--- ncurses-6.5-20241130+/panel/panel.priv.h 2020-09-26 18:05:32.000000000 +0000 ++++ ncurses-6.5-20241207/panel/panel.priv.h 2024-12-07 23:01:42.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2024 Thomas E. Dickey * + * Copyright 1998-2014,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + +-/* $Id: panel.priv.h,v 1.30 2020/09/26 18:05:32 tom Exp $ */ ++/* $Id: panel.priv.h,v 1.31 2024/12/07 23:01:42 tom Exp $ */ + + #ifndef NCURSES_PANEL_PRIV_H + #define NCURSES_PANEL_PRIV_H 1 +@@ -86,7 +86,7 @@ + #define GetScreenHook(sp) \ + struct panelhook* ph = NCURSES_SP_NAME(_nc_panelhook)(sp) + #define GetPanelHook(pan) \ +- GetScreenHook(pan ? _nc_screen_of((pan)->win) : 0) ++ GetScreenHook(pan ? _nc_screen_of((pan)->win) : NULL) + #define GetWindowHook(win) \ + SCREEN* sp = _nc_screen_of(win); \ + GetScreenHook(sp) +Index: progs/dump_entry.c +Prereq: 1.197 +--- ncurses-6.5-20241130+/progs/dump_entry.c 2024-10-19 22:00:53.000000000 +0000 ++++ ncurses-6.5-20241207/progs/dump_entry.c 2024-12-07 22:06:39.000000000 +0000 +@@ -40,7 +40,7 @@ + #include <termsort.h> /* this C file is generated */ + #include <parametrized.h> /* so is this */ + +-MODULE_ID("$Id: dump_entry.c,v 1.197 2024/10/19 22:00:53 tom Exp $") ++MODULE_ID("$Id: dump_entry.c,v 1.198 2024/12/07 22:06:39 tom Exp $") + + #define DISCARD(string) string = ABSENT_STRING + #define PRINTF (void) printf +@@ -121,7 +121,7 @@ + if (want > dst->size) { + dst->size += (want + 1024); /* be generous */ + dst->text = typeRealloc(char, dst->size, dst->text); +- if (dst->text == 0) ++ if (dst->text == NULL) + failed("strncpy_DYN"); + } + _nc_STRNCPY(dst->text + dst->used, src, need + 1); +@@ -132,7 +132,7 @@ + static void + strcpy_DYN(DYNBUF * dst, const char *src) + { +- if (src == 0) { ++ if (src == NULL) { + dst->used = 0; + strcpy_DYN(dst, ""); + } else { +@@ -144,9 +144,9 @@ + static void + free_DYN(DYNBUF * p) + { +- if (p->text != 0) ++ if (p->text != NULL) + free(p->text); +- p->text = 0; ++ p->text = NULL; + p->size = 0; + p->used = 0; + } +@@ -170,7 +170,7 @@ + { + const struct name_table_entry *np; + +- if ((np = _nc_find_entry(name, _nc_get_hash_table(0))) != 0) { ++ if ((np = _nc_find_entry(name, _nc_get_hash_table(0))) != NULL) { + switch (np->nte_type) { + case BOOLEAN: + NameTrans(bool_from_termcap, boolcodes); +@@ -186,7 +186,7 @@ + } + } + +- return (0); ++ return (NULL); + } + + void +@@ -212,7 +212,7 @@ + did_wrap = (width <= 0); + + /* versions */ +- if (version == 0) ++ if (version == NULL) + tversion = V_ALLCAPS; + else if (!strcmp(version, "SVr1") || !strcmp(version, "SVR1") + || !strcmp(version, "Ultrix")) +@@ -458,7 +458,7 @@ + } + n++; + } +- } else if (strchr("pPg", ch) != 0) { ++ } else if (strchr("pPg", ch) != NULL) { + result += 2; + } else { + result++; /* ordinary operator */ +@@ -526,7 +526,7 @@ + const char *fill = "\\s"; + size_t need = strlen(src); + size_t size = strlen(fill); +- char *result = 0; ++ char *result = NULL; + int pass; + size_t s, d; + for (pass = 0; pass < 2; ++pass) { +@@ -550,7 +550,7 @@ + result[d] = '\0'; + } else { + result = calloc(need + 1, sizeof(char)); +- if (result == 0) ++ if (result == NULL) + failed("fill_spaces"); + } + } +@@ -598,7 +598,7 @@ + if (TcOutput()) + trailer = "\\\n\t "; + +- if (!TcOutput() && (p = strchr(fill, '=')) != 0) { ++ if (!TcOutput() && (p = strchr(fill, '=')) != NULL) { + base = (int) (p + 1 - fill); + if (base > 8) + base = 8; +@@ -612,7 +612,7 @@ + align[base] = '\0'; + } + /* "pretty" overrides wrapping if it already split the line */ +- if (!pretty || strchr(fill, '\n') == 0) { ++ if (!pretty || strchr(fill, '\n') == NULL) { + int tag = 0; + + if (TcOutput() && outbuf.used && !wrap_1ST(mode)) { +@@ -841,7 +841,7 @@ + strncpy_DYN(&tmpbuf, src++, (size_t) 1); + if (src[0] == '%' + && src[1] != '\0' +- && (strchr("?e;", src[1])) == 0) { ++ && (strchr("?e;", src[1])) == NULL) { + tmpbuf.text[tmpbuf.used++] = '\n'; + indent_DYN(&tmpbuf, level); + } +@@ -926,12 +926,12 @@ + + len = 12; /* terminfo file-header */ + +- if (pred == 0) { ++ if (pred == NULL) { + cur_type = tterm; + pred = dump_predicate; + } + +- strcpy_DYN(&outbuf, 0); ++ strcpy_DYN(&outbuf, NULL); + if (content_only) { + column = indent; /* workaround to prevent empty lines */ + } else { +@@ -1120,7 +1120,7 @@ + : has_params(srccap, FALSE))); + const char *cv = _nc_infotocap(name, srccap, params); + +- if (cv == 0) { ++ if (cv == NULL) { + if (outform == F_TCONVERR) { + _nc_SPRINTF(buffer, _nc_SLIMIT(sizeof(buffer)) + "%s=!!! %s WILL NOT CONVERT !!!", +@@ -1169,7 +1169,7 @@ + char *src = _nc_tic_expand(capability, + outform == F_TERMINFO, numbers); + +- strcpy_DYN(&tmpbuf, 0); ++ strcpy_DYN(&tmpbuf, NULL); + strcpy_DYN(&tmpbuf, name); + strcpy_DYN(&tmpbuf, "="); + if (pretty +@@ -1400,7 +1400,7 @@ + * Check if the given acsc string is a 1-1 mapping, i.e., just-like-vt100. + * Also, since this is for termcap, we only care about the line-drawing map. + */ +-#define isLine(c) (strchr("lmkjtuvwqxn", c) != 0) ++#define isLine(c) (strchr("lmkjtuvwqxn", c) != NULL) + + static bool + one_one_mapping(const char *mapping) +@@ -1703,7 +1703,7 @@ + } + outbuf.text[outbuf.used] = '\0'; + } +- if (outbuf.text != 0) { ++ if (outbuf.text != NULL) { + (void) fputs(outbuf.text, stdout); + putchar('\n'); + } +Index: progs/infocmp.c +Prereq: 1.169 +--- ncurses-6.5-20241130+/progs/infocmp.c 2024-11-30 21:29:41.000000000 +0000 ++++ ncurses-6.5-20241207/progs/infocmp.c 2024-12-07 22:10:45.000000000 +0000 +@@ -43,7 +43,7 @@ + + #include <dump_entry.h> + +-MODULE_ID("$Id: infocmp.c,v 1.169 2024/11/30 21:29:41 tom Exp $") ++MODULE_ID("$Id: infocmp.c,v 1.170 2024/12/07 22:10:45 tom Exp $") + + #ifndef ACTUAL_TIC + #define ACTUAL_TIC "tic" +@@ -694,7 +694,7 @@ + #define DATAX() DATA("", "") + + typedef struct { +- const char from[4]; ++ const char from[8]; + const char to[12]; + } assoc; + +@@ -812,10 +812,10 @@ + static char * + lookup_params(const assoc * table, char *dst, char *src) + { +- char *result = 0; ++ char *result = NULL; + const char *ep = strtok(src, ";"); + +- if (ep != 0) { ++ if (ep != NULL) { + const assoc *ap; + + do { +@@ -861,7 +861,7 @@ + int csi; + size_t len = 0; + size_t next; +- const char *expansion = 0; ++ const char *expansion = NULL; + char buf3[MAX_TERMINFO_LENGTH]; + + /* first, check other capabilities in this entry */ +@@ -1052,14 +1052,14 @@ + FALSE, 0, 65535, itrace, FALSE, FALSE, FALSE); + + for (n = 0; n < argc && n < MAXCOMPARE; n++) { +- if (freopen(argv[n], "r", stdin) == 0) ++ if (freopen(argv[n], "r", stdin) == NULL) + _nc_err_abort("Can't open %s: %s", argv[n], strerror(errno)); + + #if NO_LEAKS + entered[n].head = _nc_head; + entered[n].tail = _nc_tail; + #endif +- _nc_head = _nc_tail = 0; ++ _nc_head = _nc_tail = NULL; + + /* parse entries out of the source file */ + _nc_set_source(argv[n]); +@@ -1187,7 +1187,7 @@ + + names[0] = name1; + names[1] = name2; +- names[2] = 0; ++ names[2] = NULL; + + entries[0] = *qp; + entries[1] = *rp; +@@ -1298,12 +1298,12 @@ + static size_t need; + char *s; + +- if (initializer == 0) { ++ if (initializer == NULL) { + need = (strlen(entries->tterm.term_names) + + strlen(type) + + strlen(fmt)); + initializer = (char *) malloc(need + 1); +- if (initializer == 0) ++ if (initializer == NULL) + failed("any_initializer"); + } + +@@ -1334,7 +1334,7 @@ + dump_initializers(const TERMTYPE2 *term) + { + unsigned n; +- const char *str = 0; ++ const char *str = NULL; + + printf("\nstatic char %s[] = \"%s\";\n\n", + name_initializer("alias"), entries->tterm.term_names); +@@ -1496,10 +1496,10 @@ + static int + optarg_to_number(void) + { +- char *temp = 0; ++ char *temp = NULL; + long value = strtol(optarg, &temp, 0); + +- if (temp == 0 || temp == optarg || *temp != 0) { ++ if (temp == NULL || temp == optarg || *temp != 0) { + fprintf(stderr, "Expected a number, not \"%s\"\n", optarg); + ExitProgram(EXIT_FAILURE); + } +@@ -1511,7 +1511,7 @@ + { + char *terminal; + +- if ((terminal = getenv("TERM")) == 0) { ++ if ((terminal = getenv("TERM")) == NULL) { + (void) fprintf(stderr, + "%s: environment variable TERM not set\n", + _nc_progname); +@@ -1531,7 +1531,7 @@ + const char *path2; + + _nc_first_db(&state, &offset); +- while ((path2 = _nc_next_db(&state, &offset)) != 0) { ++ while ((path2 = _nc_next_db(&state, &offset)) != NULL) { + printf("%s\n", path2); + } + _nc_last_db(); +@@ -1559,8 +1559,8 @@ + { + /* Avoid "local data >32k" error with mwcc */ + /* Also avoid overflowing smaller stacks on systems like AmigaOS */ +- path *tfile = 0; +- char **tname = 0; ++ path *tfile = NULL; ++ char **tname = NULL; + size_t maxterms; + + char **myargv; +@@ -1576,7 +1576,7 @@ + bool wrap_strings = FALSE; + + /* where is the terminfo database location going to default to? */ +- restdir = firstdir = 0; ++ restdir = firstdir = NULL; + + #if NCURSES_XNAMES + use_extended_names(FALSE); +@@ -1587,7 +1587,7 @@ + + /* make sure we have enough space to add two terminal entries */ + myargv = typeCalloc(char *, (size_t) (argc + 3)); +- if (myargv == 0) ++ if (myargv == NULL) + failed("myargv"); + + memcpy(myargv, argv, (sizeof(char *) * (size_t) argc)); +@@ -1671,7 +1671,7 @@ + outform = F_TERMINFO; + if (sortmode == S_DEFAULT) + sortmode = S_VARIABLE; +- tversion = 0; ++ tversion = NULL; + break; + + case 'i': +@@ -1712,7 +1712,7 @@ + break; + + case 'r': +- tversion = 0; ++ tversion = NULL; + break; + + case 's': +@@ -1780,20 +1780,20 @@ + } + + maxterms = (size_t) (argc + 2 - optind); +- if ((tfile = typeMalloc(path, maxterms)) == 0) ++ if ((tfile = typeMalloc(path, maxterms)) == NULL) + failed("tfile"); +- if ((tname = typeCalloc(char *, maxterms)) == 0) ++ if ((tname = typeCalloc(char *, maxterms)) == NULL) + failed("tname"); +- if ((entries = typeCalloc(ENTRY, maxterms)) == 0) ++ if ((entries = typeCalloc(ENTRY, maxterms)) == NULL) + failed("entries"); + #if NO_LEAKS +- if ((entered = typeCalloc(ENTERED, maxterms)) == 0) ++ if ((entered = typeCalloc(ENTERED, maxterms)) == NULL) + failed("entered"); + #endif + +- if (tfile == 0 +- || tname == 0 +- || entries == 0) { ++ if (tfile == NULL ++ || tname == NULL ++ || entries == NULL) { + fprintf(stderr, "%s: not enough memory\n", _nc_progname); + ExitProgram(EXIT_FAILURE); + } +Index: progs/reset_cmd.c +Prereq: 1.37 +--- ncurses-6.5-20241130+/progs/reset_cmd.c 2024-04-08 17:29:34.000000000 +0000 ++++ ncurses-6.5-20241207/progs/reset_cmd.c 2024-12-07 22:12:53.000000000 +0000 +@@ -53,7 +53,7 @@ + #include <sys/ptem.h> + #endif + +-MODULE_ID("$Id: reset_cmd.c,v 1.37 2024/04/08 17:29:34 tom Exp $") ++MODULE_ID("$Id: reset_cmd.c,v 1.38 2024/12/07 22:12:53 tom Exp $") + + /* + * SCO defines TIOCGSIZE and the corresponding struct. Other systems (SunOS, +@@ -104,8 +104,8 @@ + char buf[BUFSIZ]; + bool sent = FALSE; + +- if (file != 0) { +- if ((fp = safe_fopen(file, "r")) == 0) ++ if (file != NULL) { ++ if ((fp = safe_fopen(file, "r")) == NULL) + failed(file); + + while ((nr = fread(buf, sizeof(char), sizeof(buf), fp)) != 0) { +@@ -528,7 +528,7 @@ + + (void) old_settings; + #if TAB3 +- if (old_settings != 0 && ++ if (old_settings != NULL && + old_settings->c_oflag & (TAB3 | ONLCR | OCRNL | ONLRET)) { + old_settings->c_oflag &= (TAB3 | ONLCR | OCRNL | ONLRET); + SET_TTY(fd, old_settings); +@@ -539,11 +539,11 @@ + IGNORE_RC(system(init_prog)); + } + +- need_flush |= sent_string((use_reset && (reset_1string != 0)) ++ need_flush |= sent_string((use_reset && (reset_1string != NULL)) + ? reset_1string + : init_1string); + +- need_flush |= sent_string((use_reset && (reset_2string != 0)) ++ need_flush |= sent_string((use_reset && (reset_2string != NULL)) + ? reset_2string + : init_2string); + +@@ -584,7 +584,7 @@ + + need_flush |= cat_file((use_reset && reset_file) ? reset_file : init_file); + +- need_flush |= sent_string((use_reset && (reset_3string != 0)) ++ need_flush |= sent_string((use_reset && (reset_3string != NULL)) + ? reset_3string + : init_3string); + } +@@ -629,7 +629,7 @@ + */ + } else if (newer == 0177) { + (void) fprintf(stderr, "delete.\n"); +- } else if ((p = key_backspace) != 0 ++ } else if ((p = key_backspace) != NULL + && newer == (unsigned char) p[0] + && p[1] == '\0') { + (void) fprintf(stderr, "backspace.\n"); +@@ -655,7 +655,7 @@ + void + reset_flush(void) + { +- if (my_file != 0) ++ if (my_file != NULL) + fflush(my_file); + } + +Index: progs/tabs.c +Prereq: 1.55 +--- ncurses-6.5-20241130+/progs/tabs.c 2024-10-19 21:45:18.000000000 +0000 ++++ ncurses-6.5-20241207/progs/tabs.c 2024-12-07 22:10:45.000000000 +0000 +@@ -39,7 +39,7 @@ + #include <progs.priv.h> + #include <tty_settings.h> + +-MODULE_ID("$Id: tabs.c,v 1.55 2024/10/19 21:45:18 tom Exp $") ++MODULE_ID("$Id: tabs.c,v 1.56 2024/12/07 22:10:45 tom Exp $") + + static GCC_NORETURN void usage(void); + +@@ -147,7 +147,7 @@ + "%s: tab-stops are not in increasing order: %d %d\n", + _nc_progname, value, result[n - 1]); + free(result); +- result = 0; ++ result = NULL; + break; + } + ++n; +@@ -159,7 +159,7 @@ + } + } + +- if (result != 0) { ++ if (result != NULL) { + /* + * If there is only one value, then it is an option such as "-8". + */ +@@ -250,7 +250,7 @@ + trimmed_tab_list(const char *source) + { + char *result = strdup(source); +- if (result != 0) { ++ if (result != NULL) { + int j, k, last; + + for (j = k = last = 0; result[j] != 0; ++j) { +@@ -280,7 +280,7 @@ + { + bool result = FALSE; + +- if (source != 0) { ++ if (source != NULL) { + size_t len = strlen(source); + if (len != 0) + result = (source[len - 1] != ','); +@@ -303,7 +303,7 @@ + char *result = *append; + char *copied = trimmed_tab_list(value); + +- if (copied != 0 && *copied != '\0') { ++ if (copied != NULL && *copied != '\0') { + const char *comma = ","; + size_t need = 1 + strlen(copied); + +@@ -313,15 +313,15 @@ + comma = ""; + + need += strlen(comma); +- if (*append != 0) ++ if (*append != NULL) + need += strlen(*append); + + result = malloc(need); +- if (result == 0) ++ if (result == NULL) + failed("add_to_tab_list"); + + *result = '\0'; +- if (*append != 0) { ++ if (*append != NULL) { + _nc_STRCPY(result, *append, need); + free(*append); + } +@@ -402,7 +402,7 @@ + { + bool result = TRUE; + +- if (tab_list != 0 && *tab_list != '\0') { ++ if (tab_list != NULL && *tab_list != '\0') { + if (comma_is_needed(tab_list)) { + int n; + +@@ -433,7 +433,7 @@ + while (*value != '\0' && + (isdigit(UChar(*value)) || + isspace(UChar(*value)) || +- strchr("+,", UChar(*value)) != 0)) { ++ strchr("+,", UChar(*value)) != NULL)) { + ++value; + } + return value; +@@ -483,9 +483,9 @@ + bool no_op = FALSE; + bool change_tty = FALSE; + int n, ch; +- NCURSES_CONST char *term_name = 0; +- char *append = 0; +- const char *tab_list = 0; ++ NCURSES_CONST char *term_name = NULL; ++ char *append = NULL; ++ const char *tab_list = NULL; + const char *new_line = "\n"; + int margin = -1; + TTY tty_settings; +@@ -493,7 +493,7 @@ + + _nc_progname = _nc_rootname(argv[0]); + +- if ((term_name = getenv("TERM")) == 0) ++ if ((term_name = getenv("TERM")) == NULL) + term_name = "ansi+tabs"; + + /* cannot use getopt, since some options are two-character */ +@@ -617,11 +617,11 @@ + } + break; + default: +- if (append != 0) { ++ if (append != NULL) { + if (tab_list != (const char *) append) { + /* one of the predefined options was used */ + free(append); +- append = 0; ++ append = NULL; + } + } + tab_list = add_to_tab_list(&append, option); +@@ -683,7 +683,7 @@ + + list = decode_tabs(tab_list, margin); + +- if (list != 0) { ++ if (list != NULL) { + if (!no_op) + do_tabs(list); + if (debug) { +@@ -704,7 +704,7 @@ + } + rc = EXIT_SUCCESS; + } +- if (append != 0) ++ if (append != NULL) + free(append); + ExitProgram(rc); + } +Index: progs/tic.c +Prereq: 1.329 +--- ncurses-6.5-20241130+/progs/tic.c 2024-11-30 21:29:07.000000000 +0000 ++++ ncurses-6.5-20241207/progs/tic.c 2024-12-07 23:19:49.000000000 +0000 +@@ -49,7 +49,7 @@ + #include <parametrized.h> + #include <transform.h> + +-MODULE_ID("$Id: tic.c,v 1.329 2024/11/30 21:29:07 tom Exp $") ++MODULE_ID("$Id: tic.c,v 1.331 2024/12/07 23:19:49 tom Exp $") + + #define STDIN_NAME "<stdin>" + +@@ -61,7 +61,7 @@ + static bool infodump = FALSE; /* running as captoinfo? */ + static bool showsummary = FALSE; + static unsigned debug_level; +-static char **namelst = 0; ++static char **namelst = NULL; + static const char *to_remove; + + #if NCURSES_XNAMES +@@ -104,9 +104,9 @@ + static void + free_namelist(char **src) + { +- if (src != 0) { ++ if (src != NULL) { + int n; +- for (n = 0; src[n] != 0; ++n) ++ for (n = 0; src[n] != NULL; ++n) + free(src[n]); + free(src); + } +@@ -120,9 +120,9 @@ + free_namelist(namelst); + _nc_leaks_dump_entry(); + #endif +- if (tmp_fp != 0) ++ if (tmp_fp != NULL) + fclose(tmp_fp); +- if (to_remove != 0) { ++ if (to_remove != NULL) { + int rc; + + #if HAVE_REMOVE +@@ -214,7 +214,7 @@ + for (n = 0; n < STRCOUNT; n++) { + s = ep->tterm.Strings[n]; + if (VALID_STRING(s) +- && strchr(s, L_BRACE) != 0) { ++ && strchr(s, L_BRACE) != NULL) { + d = result; + t = s; + while ((ch = *t++) != 0) { +@@ -224,9 +224,9 @@ + break; + } else if ((ch == '%') + && (*t == L_BRACE)) { +- char *v = 0; ++ char *v = NULL; + long value = strtol(t + 1, &v, 0); +- if (v != 0 ++ if (v != NULL + && *v == R_BRACE + && value > 0 + && value != '\\' /* FIXME */ +@@ -334,14 +334,14 @@ + in_name = FALSE; + + suffix[0] = '\0'; +- if ((up = strchr(namebuf, '#')) != 0 +- || (up = strchr(namebuf, '=')) != 0 +- || ((up = strchr(namebuf, '@')) != 0 && up[1] == '>')) { ++ if ((up = strchr(namebuf, '#')) != NULL ++ || (up = strchr(namebuf, '=')) != NULL ++ || ((up = strchr(namebuf, '@')) != NULL && up[1] == '>')) { + _nc_STRCPY(suffix, up, have); + *up = '\0'; + } + +- if ((tp = nametrans(namebuf)) != 0) { ++ if ((tp = nametrans(namebuf)) != NULL) { + (void) putchar(':'); + (void) fputs(tp, stdout); + (void) fputs(suffix, stdout); +@@ -368,7 +368,7 @@ + static char * + stripped(char *src) + { +- char *dst = 0; ++ char *dst = NULL; + + while (isspace(UChar(*src))) + src++; +@@ -388,7 +388,7 @@ + static FILE * + open_tempfile(char *filename) + { +- FILE *result = 0; ++ FILE *result = NULL; + + _nc_STRCPY(filename, "/tmp/XXXXXX", PATH_MAX); + #if HAVE_MKSTEMP +@@ -410,7 +410,7 @@ + copy_input(FILE *source, const char *filename, char *alt_file) + { + char my_altfile[PATH_MAX]; +- FILE *result = 0; ++ FILE *result = NULL; + FILE *target; + + if (alt_file == NULL) +@@ -476,7 +476,7 @@ + ExitProgram(EXIT_FAILURE); + } + if (mode != S_IFREG) { +- if (alt_file != 0) { ++ if (alt_file != NULL) { + FILE *fp2 = copy_input(fp, filename, alt_file); + fp = fp2; + } else { +@@ -493,7 +493,7 @@ + static char ** + make_namelist(char *src) + { +- char **dst = 0; ++ char **dst = NULL; + + char *s, *base; + unsigned pass, n, nn; +@@ -501,14 +501,14 @@ + + if (src == NULL) { + /* EMPTY */ ; +- } else if (strchr(src, '/') != 0) { /* a filename */ ++ } else if (strchr(src, '/') != NULL) { /* a filename */ + FILE *fp = open_input(src, (char *) 0); + + for (pass = 1; pass <= 2; pass++) { + nn = 0; +- while (fgets(buffer, sizeof(buffer), fp) != 0) { +- if ((s = stripped(buffer)) != 0) { +- if (dst != 0) ++ while (fgets(buffer, sizeof(buffer), fp) != NULL) { ++ if ((s = stripped(buffer)) != NULL) { ++ if (dst != NULL) + dst[nn] = s; + else + free(s); +@@ -520,7 +520,7 @@ + failed("make_namelist (alloc)"); + rewind(fp); + if (errno != 0) +- failed("make_namelist (rewind)"); ++ failed("make_namelist (rewind)"); + } + } + fclose(fp); +@@ -533,7 +533,7 @@ + nn++; + } else { + src[n] = '\0'; +- if ((s = stripped(base)) != 0) ++ if ((s = stripped(base)) != NULL) + dst[nn++] = s; + base = &src[n + 1]; + } +@@ -547,9 +547,9 @@ + } + } + } +- if (showsummary && (dst != 0)) { ++ if (showsummary && (dst != NULL)) { + fprintf(log_fp, "Entries that will be compiled:\n"); +- for (n = 0; dst[n] != 0; n++) ++ for (n = 0; dst[n] != NULL; n++) + fprintf(log_fp, "%u:%s\n", n + 1, dst[n]); + } + return dst; +@@ -561,10 +561,10 @@ + { + bool code = FALSE; + +- if (needle != 0) { ++ if (needle != NULL) { + size_t n; + +- for (n = 0; needle[n] != 0; n++) { ++ for (n = 0; needle[n] != NULL; n++) { + if (_nc_name_match(haystack, needle[n], "|")) { + code = TRUE; + break; +@@ -608,7 +608,7 @@ + || access(result, R_OK | W_OK | X_OK) != 0) { + DEBUG(1, ("...not a writable directory")); + free(result); +- result = 0; ++ result = NULL; + } + #endif + } else { +@@ -626,12 +626,12 @@ + } else { + DEBUG(1, ("...parent directory %s is not writable", result)); + free(result); +- result = 0; ++ result = NULL; + } + } else { + DEBUG(1, ("... no parent directory")); + free(result); +- result = 0; ++ result = NULL; + } + } + return result; +@@ -645,14 +645,14 @@ + static void + show_databases(const char *outdir) + { +- bool specific = (outdir != 0) || getenv("TERMINFO") != 0; ++ bool specific = (outdir != NULL) || getenv("TERMINFO") != NULL; + char *result; +- const char *tried = 0; ++ const char *tried = NULL; + + if (outdir == NULL) { + outdir = _nc_tic_dir(NULL); + } +- if ((result = valid_db_path(outdir)) != 0) { ++ if ((result = valid_db_path(outdir)) != NULL) { + printf("%s\n", result); + free(result); + } else { +@@ -924,13 +924,13 @@ + if (infodump == TRUE) { + /* captoinfo's no-argument case */ + source_file = "/etc/termcap"; +- if ((termcap = getenv("TERMCAP")) != 0 +- && (namelst = make_namelist(getenv("TERM"))) != 0) { ++ if ((termcap = getenv("TERMCAP")) != NULL ++ && (namelst = make_namelist(getenv("TERM"))) != NULL) { + if (access(termcap, F_OK) == 0) { + /* file exists */ + source_file = termcap; + } else { +- if ((tmp_fp = open_tempfile(my_tmpname)) != 0) { ++ if ((tmp_fp = open_tempfile(my_tmpname)) != NULL) { + source_file = my_tmpname; + fprintf(tmp_fp, "%s\n", termcap); + fclose(tmp_fp); +@@ -1335,7 +1335,7 @@ + if ((ch = keypad_final(string)) != '\0') { + const char *list = "PQRSwxymtuvlqrsPpn"; /* app-keypad except "Enter" */ + const char *test = (strchr) (list, ch); +- if (test != 0) ++ if (test != NULL) + result = (long) (test - list); + } + return result; +@@ -1712,8 +1712,8 @@ + static bool + uses_SGR_39_49(const char *value) + { +- return (strstr(value, "39;49") != 0 +- || strstr(value, "49;39") != 0); ++ return (strstr(value, "39;49") != NULL ++ || strstr(value, "49;39") != NULL); + } + + /* +@@ -1897,7 +1897,7 @@ + static struct user_table_entry const * + lookup_user_capability(const char *name) + { +- struct user_table_entry const *result = 0; ++ struct user_table_entry const *result = NULL; + if (*name != 'k') { + result = _nc_find_user_entry(name); + } +@@ -1929,7 +1929,7 @@ + #if NCURSES_XNAMES + else if (using_extensions) { + struct user_table_entry const *p = lookup_user_capability(name); +- if (p != 0) { ++ if (p != NULL) { + result = (int) p->ute_argc; + } + } +@@ -2134,7 +2134,7 @@ + skip_DECSCNM(const char *value, int *flag) + { + *flag = -1; +- if (value != 0) { ++ if (value != NULL) { + int skip = csi_length(value); + if (skip > 0 && + value[skip++] == '?' && +@@ -2154,13 +2154,13 @@ + check_delays(const TERMTYPE2 *tp, const char *name, const char *value) + { + const char *p, *q; +- const char *first = 0; +- const char *last = 0; ++ const char *first = NULL; ++ const char *last = NULL; + + for (p = value; *p != '\0'; ++p) { + if (p[0] == '$' && p[1] == '<') { + const char *base = p + 2; +- const char *mark = 0; ++ const char *mark = NULL; + bool mixed = FALSE; + int proportional = 0; + int mandatory = 0; +@@ -2179,7 +2179,7 @@ + ++mandatory; + if (mark == NULL) + mark = q; +- } else if (!(isalnum(UChar(*q)) || strchr("+-.", *q) != 0)) { ++ } else if (!(isalnum(UChar(*q)) || strchr("+-.", *q) != NULL)) { + break; + } else if (proportional || mandatory) { + mixed = TRUE; +@@ -2215,7 +2215,7 @@ + if (!strcmp(name, "flash") || + !strcmp(name, "beep")) { + +- if (first != 0) { ++ if (first != NULL) { + if (first == value || *last == 0) { + /* + * Delay is on one end or the other. +@@ -2229,9 +2229,9 @@ + * Check for missing delay when using VT100 reverse-video. + * A real VT100 might not need this, but terminal emulators do. + */ +- if ((p = skip_DECSCNM(value, &flag)) != 0 && ++ if ((p = skip_DECSCNM(value, &flag)) != NULL && + flag > 0 && +- skip_DECSCNM(p, &flag) != 0 && ++ skip_DECSCNM(p, &flag) != NULL && + flag == 0) { + _nc_warning("expected a delay in %s", name); + } +@@ -2304,7 +2304,7 @@ + break; + case Other: + default: +-#define myParam(n) (p_is_s[n - 1] != 0 ? ((TPARM_ARG) strings[n]) : numbers[n]) ++#define myParam(n) (p_is_s[n - 1] != NULL ? ((TPARM_ARG) strings[n]) : numbers[n]) + result = TPARM_9(value, + myParam(1), + myParam(2), +@@ -2648,7 +2648,7 @@ + num == 7, + num == 8, + num == 9); +- if (test != 0) { ++ if (test != NULL) { + if (PRESENT(cap)) { + if (!similar_sgr(num, test, cap)) { + _nc_warning("%s differs from sgr(%d)\n\t%s=%s\n\tsgr(%d)=%s", +@@ -2868,7 +2868,7 @@ + static void + check_exit_attribute(const char *name, char *test, char *trimmed, char *untrimmed) + { +- if (VALID_STRING(test) && (trimmed != 0)) { ++ if (VALID_STRING(test) && (trimmed != NULL)) { + if (similar_sgr(-1, trimmed, test) || + similar_sgr(-1, untrimmed, test)) { + _nc_warning("%s matches exit_attribute_mode", name); +@@ -2963,7 +2963,7 @@ + int result = -1; + const struct name_table_entry *np; + +- if ((np = _nc_find_entry(name, _nc_get_hash_table(0))) != 0) { ++ if ((np = _nc_find_entry(name, _nc_get_hash_table(0))) != NULL) { + result = np->nte_type; + } + return result; +@@ -2990,7 +2990,7 @@ + static void + check_user_capability_type(const char *name, int actual) + { +- if (lookup_user_capability(name) == 0) { ++ if (lookup_user_capability(name) == NULL) { + int expected = standard_type(name); + if (expected >= 0) { + _nc_warning("expected %s to be %s, but actually %s", +@@ -3156,7 +3156,7 @@ + check_user_6789(const TERMTYPE2 *tp) + { + /* +- * Check if the terminal is known to not ++ * Check if the terminal is known to not + */ + #define NO_QUERY(longname,shortname) \ + if (PRESENT(longname)) _nc_warning(#shortname " is not supported") +@@ -3272,7 +3272,7 @@ + ANDMISSING(clear_all_tabs, set_tab); + + if (PRESENT(set_attributes)) { +- char *zero = 0; ++ char *zero = NULL; + + _nc_tparm_err = 0; + if (PRESENT(exit_attribute_mode)) { +@@ -3282,7 +3282,7 @@ + } + check_tparm_err(0); + +- if (zero != 0) { ++ if (zero != NULL) { + CHECK_SGR(1, enter_standout_mode); + CHECK_SGR(2, enter_underline_mode); + CHECK_SGR(3, enter_reverse_mode); +@@ -3368,6 +3368,6 @@ + /* + * Finally, do the non-verbose checks + */ +- if (save_check_termtype != 0) ++ if (save_check_termtype != NULL) + save_check_termtype(tp, literal); + } +Index: progs/toe.c +Prereq: 1.91 +--- ncurses-6.5-20241130+/progs/toe.c 2024-11-23 20:09:23.000000000 +0000 ++++ ncurses-6.5-20241207/progs/toe.c 2024-12-07 22:12:53.000000000 +0000 +@@ -45,7 +45,7 @@ + #include <hashed_db.h> + #endif + +-MODULE_ID("$Id: toe.c,v 1.91 2024/11/23 20:09:23 tom Exp $") ++MODULE_ID("$Id: toe.c,v 1.92 2024/12/07 22:12:53 tom Exp $") + + #define isDotname(name) (!strcmp(name, ".") || !strcmp(name, "..")) + +@@ -86,7 +86,7 @@ + strmalloc(const char *value) + { + char *result = strdup(value); +- if (result == 0) { ++ if (result == NULL) { + failed("strmalloc"); + } + return result; +@@ -100,7 +100,7 @@ + if (want >= len_termdata) { + len_termdata = (2 * want) + 10; + ptr_termdata = typeRealloc(TERMDATA, len_termdata, ptr_termdata); +- if (ptr_termdata == 0) ++ if (ptr_termdata == NULL) + failed("ptr_termdata"); + } + +@@ -200,14 +200,14 @@ + static void + free_termdata(void) + { +- if (ptr_termdata != 0) { ++ if (ptr_termdata != NULL) { + while (use_termdata != 0) { + --use_termdata; + free(ptr_termdata[use_termdata].term_name); + free(ptr_termdata[use_termdata].description); + } + free(ptr_termdata); +- ptr_termdata = 0; ++ ptr_termdata = NULL; + } + use_termdata = 0; + len_termdata = 0; +@@ -217,7 +217,7 @@ + allocArgv(size_t count) + { + char **result = typeCalloc(char *, count + 1); +- if (result == 0) ++ if (result == NULL) + failed("realloc eargv"); + + assert(result != 0); +@@ -272,8 +272,8 @@ + { + const char *desc; + +- if (tp->term_names == 0 +- || (desc = strrchr(tp->term_names, '|')) == 0 ++ if (tp->term_names == NULL ++ || (desc = strrchr(tp->term_names, '|')) == NULL + || (*++desc == '\0')) { + desc = "(No description)"; + } +@@ -389,7 +389,7 @@ + { + size_t len = NAMLEN(src); + char *result = malloc(len + 1); +- if (result == 0) ++ if (result == NULL) + failed("copy entryname"); + memcpy(result, src->d_name, len); + result[len] = '\0'; +@@ -409,11 +409,11 @@ + for (i = 0; i < eargc; i++) { + #if NCURSES_USE_DATABASE + if (_nc_is_dir_path(eargv[i])) { +- char *cwd_buf = 0; ++ char *cwd_buf = NULL; + DIR *termdir; + const DIRENT *subdir; + +- if ((termdir = opendir(eargv[i])) == 0) { ++ if ((termdir = opendir(eargv[i])) == NULL) { + (void) fflush(stdout); + (void) fprintf(stderr, + "%s: can't open terminfo directory %s\n", +@@ -424,7 +424,7 @@ + if (verbosity) + (void) printf("#\n#%s:\n#\n", eargv[i]); + +- while ((subdir = readdir(termdir)) != 0) { ++ while ((subdir = readdir(termdir)) != NULL) { + size_t cwd_len; + char *name_1; + DIR *entrydir; +@@ -438,7 +438,7 @@ + + cwd_len = strlen(name_1) + strlen(eargv[i]) + 3; + cwd_buf = typeRealloc(char, cwd_len, cwd_buf); +- if (cwd_buf == 0) ++ if (cwd_buf == NULL) + failed("realloc cwd_buf"); + + assert(cwd_buf != 0); +@@ -451,11 +451,11 @@ + continue; + + entrydir = opendir("."); +- if (entrydir == 0) { ++ if (entrydir == NULL) { + perror(cwd_buf); + continue; + } +- while ((entry = readdir(entrydir)) != 0) { ++ while ((entry = readdir(entrydir)) != NULL) { + char *name_2; + TERMTYPE2 lterm; + char *cn; +@@ -489,7 +489,7 @@ + closedir(entrydir); + } + closedir(termdir); +- if (cwd_buf != 0) ++ if (cwd_buf != NULL) + free(cwd_buf); + continue; + } +@@ -605,7 +605,7 @@ + bool direct_dependencies = FALSE; + bool invert_dependencies = FALSE; + bool header = FALSE; +- const char *report_file = 0; ++ const char *report_file = NULL; + int code; + int this_opt, last_opt = '?'; + unsigned v_opt = 0; +@@ -660,8 +660,8 @@ + } + use_verbosity(v_opt); + +- if (report_file != 0) { +- if (freopen(report_file, "r", stdin) == 0) { ++ if (report_file != NULL) { ++ if (freopen(report_file, "r", stdin) == NULL) { + (void) fflush(stdout); + fprintf(stderr, "%s: can't open %s\n", _nc_progname, report_file); + ExitProgram(EXIT_FAILURE); +@@ -669,7 +669,7 @@ + + /* parse entries out of the source file */ + _nc_set_source(report_file); +- _nc_read_entry_source(stdin, 0, FALSE, FALSE, NULLHOOK); ++ _nc_read_entry_source(stdin, NULL, FALSE, FALSE, NULLHOOK); + } + + /* maybe we want a direct-dependency listing? */ +@@ -729,7 +729,7 @@ + DBDIRS state; + int offset; + int pass; +- char **eargv = 0; ++ char **eargv = NULL; + + code = EXIT_FAILURE; + for (pass = 0; pass < 2; ++pass) { +@@ -737,7 +737,7 @@ + const char *path; + + _nc_first_db(&state, &offset); +- while ((path = _nc_next_db(&state, &offset)) != 0) { ++ while ((path = _nc_next_db(&state, &offset)) != NULL) { + if (quick_prefix(path)) + continue; + if (pass) { +@@ -747,7 +747,7 @@ + } + if (!pass) { + eargv = allocArgv(count); +- if (eargv == 0) ++ if (eargv == NULL) + failed("eargv"); + } else { + code = typelist((int) count, eargv, header, hook); +@@ -761,10 +761,10 @@ + char **eargv = allocArgv((size_t) 2); + size_t count = 0; + +- if (eargv == 0) ++ if (eargv == NULL) + failed("eargv"); + _nc_first_db(&state, &offset); +- if ((path = _nc_next_db(&state, &offset)) != 0) { ++ if ((path = _nc_next_db(&state, &offset)) != NULL) { + if (!quick_prefix(path)) + eargv[count++] = strmalloc(path); + } +Index: progs/tput.c +Prereq: 1.106 +--- ncurses-6.5-20241130+/progs/tput.c 2024-11-30 21:47:34.000000000 +0000 ++++ ncurses-6.5-20241207/progs/tput.c 2024-12-07 22:12:53.000000000 +0000 +@@ -47,7 +47,7 @@ + #include <transform.h> + #include <tty_settings.h> + +-MODULE_ID("$Id: tput.c,v 1.106 2024/11/30 21:47:34 tom Exp $") ++MODULE_ID("$Id: tput.c,v 1.107 2024/12/07 22:12:53 tom Exp $") + + #define PUTS(s) fputs(s, stdout) + +@@ -256,15 +256,15 @@ + */ + + for (k = 1; (k < argc) && (k <= NUM_PARM); k++) { +- char *tmp = 0; ++ char *tmp = NULL; + strings[k] = argv[k]; + numbers[k] = strtol(argv[k], &tmp, 0); +- if (tmp == 0 || *tmp != 0) ++ if (tmp == NULL || *tmp != 0) + numbers[k] = 0; + } + for (k = argc; k <= NUM_PARM; k++) { + numbers[k] = 0; +- strings[k] = 0; ++ strings[k] = NULL; + } + + paramType = tparm_type(name); +@@ -342,7 +342,7 @@ + /* FALLTHRU */ + default: + analyzed = _nc_tparm_analyze(NULL, s, p_is_s, &popcount); +-#define myParam(n) (p_is_s[n - 1] != 0 ? ((TPARM_ARG) strings[n]) : numbers[n]) ++#define myParam(n) (p_is_s[n - 1] != NULL ? ((TPARM_ARG) strings[n]) : numbers[n]) + s = TPARM_9(s, + myParam(1), + myParam(2), +@@ -440,7 +440,7 @@ + argv += optind; + } + +- if (term == 0 || *term == '\0') ++ if (term == NULL || *term == '\0') + quit(ErrUsage, "No value for $TERM and no -T specified"); + + fd = save_tty_settings(&tty_settings, need_tty); +@@ -464,7 +464,7 @@ + ExitProgram(code); + } + +- while (fgets(buf, sizeof(buf), stdin) != 0) { ++ while (fgets(buf, sizeof(buf), stdin) != NULL) { + size_t need = strlen(buf); + char **argvec = typeCalloc(char *, need + 1); + char **argnow; +Index: progs/tset.c +Prereq: 1.138 +--- ncurses-6.5-20241130+/progs/tset.c 2024-11-30 21:30:49.000000000 +0000 ++++ ncurses-6.5-20241207/progs/tset.c 2024-12-07 22:14:46.000000000 +0000 +@@ -98,7 +98,7 @@ + char *ttyname(int fd); + #endif + +-MODULE_ID("$Id: tset.c,v 1.138 2024/11/30 21:30:49 tom Exp $") ++MODULE_ID("$Id: tset.c,v 1.139 2024/12/07 22:14:46 tom Exp $") + + #ifndef environ + extern char **environ; +@@ -185,19 +185,19 @@ + (void) fprintf(stderr, "Terminal type? "); + (void) fflush(stderr); + +- if (fgets(answer, sizeof(answer), stdin) == 0) { +- if (dflt == 0) { ++ if (fgets(answer, sizeof(answer), stdin) == NULL) { ++ if (dflt == NULL) { + exit_error(); + /* NOTREACHED */ + } + return (dflt); + } + +- if ((p = strchr(answer, '\n')) != 0) ++ if ((p = strchr(answer, '\n')) != NULL) + *p = '\0'; + if (answer[0]) + return (answer); +- if (dflt != 0) ++ if (dflt != NULL) + return (dflt); + } + } +@@ -344,7 +344,7 @@ + static int + tbaudrate(char *rate) + { +- const SPEEDS *sp = 0; ++ const SPEEDS *sp = NULL; + size_t n; + + /* The baudrate number can be preceded by a 'B', which is ignored. */ +@@ -361,7 +361,7 @@ + break; + } + } +- if (sp == 0) ++ if (sp == NULL) + err("unknown baud rate %s", rate); + return (sp->speed); + } +@@ -377,18 +377,18 @@ + MAP *mapp; + char *copy, *p; + const char *termp; +- char *base = 0; ++ char *base = NULL; + + copy = strdup(arg); + mapp = typeMalloc(MAP, 1); +- if (copy == 0 || mapp == 0) ++ if (copy == NULL || mapp == NULL) + failed("malloc"); + + assert(copy != 0); + assert(mapp != 0); + +- mapp->next = 0; +- if (maplist == 0) ++ mapp->next = NULL; ++ if (maplist == NULL) + cur = maplist = mapp; + else { + cur->next = mapp; +@@ -400,14 +400,14 @@ + + arg = strpbrk(arg, "><@=!:"); + +- if (arg == 0) { /* [?]term */ ++ if (arg == NULL) { /* [?]term */ + mapp->type = mapp->porttype; +- mapp->porttype = 0; ++ mapp->porttype = NULL; + goto done; + } + + if (arg == mapp->porttype) /* [><@=! baud]:term */ +- termp = mapp->porttype = 0; ++ termp = mapp->porttype = NULL; + else + termp = base = arg; + +@@ -442,7 +442,7 @@ + ++arg; + } else { /* Optional baudrate. */ + arg = strchr(p = arg, ':'); +- if (arg == 0) ++ if (arg == NULL) + goto badmopt; + *arg++ = '\0'; + mapp->speed = tbaudrate(p); +@@ -451,7 +451,7 @@ + mapp->type = arg; + + /* Terminate porttype, if specified. */ +- if (termp != 0) ++ if (termp != NULL) + *base = '\0'; + + /* If a NOT conditional, reverse the test. */ +@@ -499,7 +499,7 @@ + int match; + + for (mapp = maplist; mapp; mapp = mapp->next) +- if (mapp->porttype == 0 || !strcmp(mapp->porttype, type)) { ++ if (mapp->porttype == NULL || !strcmp(mapp->porttype, type)) { + switch (mapp->conditional) { + case 0: /* No test specified. */ + match = TRUE; +@@ -562,11 +562,11 @@ + } + + /* Try the environment. */ +- if ((ttype = getenv("TERM")) != 0) ++ if ((ttype = getenv("TERM")) != NULL) + goto map; + + #if HAVE_PATH_TTYS +- if ((ttypath = ttyname(fd)) != 0) { ++ if ((ttypath = ttyname(fd)) != NULL) { + p = _nc_basename(ttypath); + #if HAVE_GETTTYNAM + /* +@@ -616,14 +616,14 @@ + * by out of date stuff in the environment. + */ + found: +- if ((p = getenv("TERMCAP")) != 0 && !_nc_is_abs_path(p)) { ++ if ((p = getenv("TERMCAP")) != NULL && !_nc_is_abs_path(p)) { + /* 'unsetenv("TERMCAP")' is not portable. + * The 'environ' array is better. + */ + int n; +- for (n = 0; environ[n] != 0; n++) { ++ for (n = 0; environ[n] != NULL; n++) { + if (!strncmp("TERMCAP=", environ[n], (size_t) 8)) { +- while ((environ[n] = environ[n + 1]) != 0) { ++ while ((environ[n] = environ[n + 1]) != NULL) { + n++; + } + break; +@@ -639,7 +639,7 @@ + if (ttype[1] != '\0') + ttype = askuser(ttype + 1); + else +- ttype = askuser(0); ++ ttype = askuser(NULL); + } + /* Find the terminfo entry. If it doesn't exist, ask the user. */ + while (setupterm((NCURSES_CONST char *) ttype, fd, &errret) +@@ -647,12 +647,12 @@ + if (errret == 0) { + (void) fprintf(stderr, "%s: unknown terminal type %s\n", + _nc_progname, ttype); +- ttype = 0; ++ ttype = NULL; + } else { + (void) fprintf(stderr, + "%s: can't initialize terminal type %s (error %d)\n", + _nc_progname, ttype, errret); +- ttype = 0; ++ ttype = NULL; + } + ttype = askuser(ttype); + } +@@ -713,7 +713,7 @@ + * Figure out what shell we're using. A hack, we look for an + * environmental variable SHELL ending in "csh". + */ +- if ((var = getenv("SHELL")) != 0 ++ if ((var = getenv("SHELL")) != NULL + && ((len = (int) strlen(leaf = _nc_basename(var))) >= 3) + && !strcmp(leaf + len - 3, "csh")) + p = "set noglob;\nsetenv TERM %s;\nunset noglob;\n"; +@@ -806,7 +806,7 @@ + tkillchar = arg_to_char(); + break; + case 'm': /* map identifier to type */ +- add_mapping(0, optarg); ++ add_mapping(NULL, optarg); + break; + case 'p': /* OBSOLETE: map identifier to type */ + add_mapping("plugboard", optarg); +Index: test/blue.c +Prereq: 1.56 +--- ncurses-6.5-20241130+/test/blue.c 2024-10-05 19:26:24.000000000 +0000 ++++ ncurses-6.5-20241207/test/blue.c 2024-12-07 22:27:13.000000000 +0000 +@@ -37,7 +37,7 @@ + *****************************************************************************/ + + /* +- * $Id: blue.c,v 1.56 2024/10/05 19:26:24 tom Exp $ ++ * $Id: blue.c,v 1.57 2024/12/07 22:27:13 tom Exp $ + */ + + #include <test.priv.h> +@@ -454,7 +454,7 @@ + * The ncurses library makes this check to decide whether to allow + * the alternate character set for the (normally) nonprinting codes. + */ +- if (smacs != 0 && smpch != 0 && !strcmp(smacs, smpch)) { ++ if (smacs != NULL && smpch != NULL && !strcmp(smacs, smpch)) { + suits = glyphs; + } + } +Index: test/bs.c +Prereq: 1.81 +--- ncurses-6.5-20241130+/test/bs.c 2024-11-30 16:47:02.000000000 +0000 ++++ ncurses-6.5-20241207/test/bs.c 2024-12-07 22:18:28.000000000 +0000 +@@ -35,7 +35,7 @@ + * v2.0 featuring strict ANSI/POSIX conformance, November 1993. + * v2.1 with ncurses mouse support, September 1995 + * +- * $Id: bs.c,v 1.81 2024/11/30 16:47:02 tom Exp $ ++ * $Id: bs.c,v 1.82 2024/12/07 22:18:28 tom Exp $ + */ + + #include <test.priv.h> +@@ -224,12 +224,12 @@ + { + const char *tmpname; + +- srand((unsigned) (time(0L) + getpid())); /* Kick the random number generator */ ++ srand((unsigned) (time(NULL) + getpid())); /* Kick the random number generator */ + + InitAndCatch(initscr(), uninitgame); + +- if ((tmpname = getlogin()) != 0 && +- (your_name = strdup(tmpname)) != 0) { ++ if ((tmpname = getlogin()) != NULL && ++ (your_name = strdup(tmpname)) != NULL) { + your_name[0] = (char) toupper(UChar(your_name[0])); + } else { + your_name = strdup(dftname); +@@ -475,7 +475,7 @@ + } else if (c == FF) { + (void) clearok(stdscr, TRUE); + (void) refresh(); +- } else if (ss == 0) { ++ } else if (ss == NULL) { + beep(); /* simple to verify, unlikely to happen */ + } else if (c == 'r') { + prompt(1, "Random-placing your %s", ss->name); +@@ -877,7 +877,7 @@ + m = " You'll pick up survivors from my %s, I hope...!"; + break; + } +- if (m != 0) { ++ if (m != NULL) { + (void) printw(m, ss->name); + } + (void) beep(); +Index: test/cardfile.c +Prereq: 1.53 +--- ncurses-6.5-20241130+/test/cardfile.c 2024-11-30 16:47:59.000000000 +0000 ++++ ncurses-6.5-20241207/test/cardfile.c 2024-12-07 22:27:13.000000000 +0000 +@@ -30,7 +30,7 @@ + /* + * Author: Thomas E. Dickey + * +- * $Id: cardfile.c,v 1.53 2024/11/30 16:47:59 tom Exp $ ++ * $Id: cardfile.c,v 1.54 2024/12/07 22:27:13 tom Exp $ + * + * File format: text beginning in column 1 is a title; other text is content. + */ +@@ -47,7 +47,7 @@ + #define pair_1 1 + #define pair_2 2 + +-#define isVisible(cardp) ((cardp)->panel != 0) ++#define isVisible(cardp) ((cardp)->panel != NULL) + + enum { + MY_CTRL_x = MAX_FORM_COMMAND +@@ -100,7 +100,7 @@ + { + CARD *card, *p, *q; + +- for (p = all_cards, q = 0; p != 0; q = p, p = p->link) { ++ for (p = all_cards, q = NULL; p != NULL; q = p, p = p->link) { + int cmp = strcmp(p->title, title); + if (cmp == 0) + return p; +@@ -112,7 +112,7 @@ + card->title = strdup(title); + card->content = strdup(""); + +- if (q == 0) { ++ if (q == NULL) { + card->link = all_cards; + all_cards = card; + } else { +@@ -132,7 +132,7 @@ + if ((total = strlen(content)) != 0) { + size_t offset; + +- if (card->content != 0 && (offset = strlen(card->content)) != 0) { ++ if (card->content != NULL && (offset = strlen(card->content)) != 0) { + total += 1 + offset; + card->content = typeRealloc(char, total + 1, card->content); + if (card->content) { +@@ -141,7 +141,7 @@ + } + } else { + offset = 0; +- if (card->content != 0) ++ if (card->content != NULL) + free(card->content); + card->content = typeMalloc(char, total + 1); + } +@@ -165,7 +165,7 @@ + { + CARD *card; + +- for (card = all_cards; card != 0; card = card->link) ++ for (card = all_cards; card != NULL; card = card->link) + if (!strcmp(card->title, title)) + break; + +@@ -177,17 +177,17 @@ + { + FILE *fp; + +- if ((fp = fopen(fname, "r")) != 0) { +- CARD *card = 0; ++ if ((fp = fopen(fname, "r")) != NULL) { ++ CARD *card = NULL; + char buffer[BUFSIZ]; + + while (fgets(buffer, sizeof(buffer), fp)) { + trim(buffer); + if (isspace(UChar(*buffer))) { +- if (card == 0) ++ if (card == NULL) + card = add_title(""); + add_content(card, buffer); +- } else if ((card = find_card(buffer)) == 0) { ++ } else if ((card = find_card(buffer)) == NULL) { + card = add_title(buffer); + } + } +@@ -205,17 +205,17 @@ + if (!strcmp(fname, default_name)) + fname = "cardfile.out"; + +- if ((fp = fopen(fname, "w")) != 0) { +- CARD *p = 0; ++ if ((fp = fopen(fname, "w")) != NULL) { ++ CARD *p = NULL; + +- for (p = all_cards; p != 0; p = p->link) { ++ for (p = all_cards; p != NULL; p = p->link) { + FIELD **f = form_fields(p->form); + int n; + +- for (n = 0; f[n] != 0; n++) { ++ for (n = 0; f[n] != NULL; n++) { + char *s = field_buffer(f[n], 0); +- if (s != 0 +- && (s = strdup(s)) != 0) { ++ if (s != NULL ++ && (s = strdup(s)) != NULL) { + trim(s); + fprintf(fp, "%s%s\n", n ? "\t" : "", s); + free(s); +@@ -237,7 +237,7 @@ + CARD *p; + int count = 0; + +- for (p = all_cards; p != 0; p = p->link) ++ for (p = all_cards; p != NULL; p = p->link) + count++; + + return count; +@@ -263,7 +263,7 @@ + static CARD * + next_card(CARD * now) + { +- if (now->link != 0) { ++ if (now->link != NULL) { + CARD *tst = now->link; + if (isVisible(tst)) + now = tst; +@@ -280,7 +280,7 @@ + prev_card(CARD * now) + { + CARD *p; +- for (p = all_cards; p != 0; p = p->link) { ++ for (p = all_cards; p != NULL; p = p->link) { + if (p->link == now) { + if (!isVisible(p)) + p = prev_card(p); +@@ -355,7 +355,7 @@ + set_field_just(f[1], JUSTIFY_LEFT); + field_opts_off(f[1], O_BLANK); + +- f[2] = 0; ++ f[2] = NULL; + return f; + } + +@@ -375,7 +375,7 @@ + { + int n; + +- for (n = 0; f[n] != 0; ++n) { ++ for (n = 0; f[n] != NULL; ++n) { + free_field(f[n]); + } + free(f); +@@ -414,9 +414,9 @@ + x = 0; + + /* make a panel for each CARD */ +- for (p = all_cards; p != 0; p = p->link) { ++ for (p = all_cards; p != NULL; p = p->link) { + +- if ((win = newwin(panel_high, panel_wide, y, x)) == 0) ++ if ((win = newwin(panel_high, panel_wide, y, x)) == NULL) + break; + + wbkgd(win, (chtype) COLOR_PAIR(pair_2)); +@@ -478,7 +478,7 @@ + x = 0; + + show_legend(); +- for (p = all_cards; p != 0; p = p->link) { ++ for (p = all_cards; p != NULL; p = p->link) { + FIELD **oldf = form_fields(p->form); + WINDOW *olds = form_sub(p->form); + +@@ -528,7 +528,7 @@ + } + } + #if NO_LEAKS +- while (all_cards != 0) { ++ while (all_cards != NULL) { + p = all_cards; + all_cards = all_cards->link; + +Index: test/chgat.c +Prereq: 1.23 +--- ncurses-6.5-20241130+/test/chgat.c 2024-10-06 22:35:55.000000000 +0000 ++++ ncurses-6.5-20241207/test/chgat.c 2024-12-07 22:27:13.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: chgat.c,v 1.23 2024/10/06 22:35:55 tom Exp $ ++ * $Id: chgat.c,v 1.24 2024/12/07 22:27:13 tom Exp $ + * + * test-driver for chgat/wchgat/mvchgat/mvwchgat + */ +@@ -77,7 +77,7 @@ + }; + /* *INDENT-ON* */ + +- const char *result = 0; ++ const char *result = NULL; + + if (has_colors()) { + static bool first = TRUE; +@@ -114,7 +114,7 @@ + }; + /* *INDENT-ON* */ + +- const char *result = 0; ++ const char *result = NULL; + + if (state < SIZEOF(table)) { + *attr = table[state].attr; +@@ -151,9 +151,9 @@ + getyx(win, y, x); + wmove(win, 0, 0); + wprintw(win, "Count %d", sp->count); +- if (sp->v_msg != 0) ++ if (sp->v_msg != NULL) + wprintw(win, " Video %s", sp->v_msg); +- if (sp->c_msg != 0) ++ if (sp->c_msg != NULL) + wprintw(win, " Color %s", sp->c_msg); + wclrtoeol(win); + wmove(win, y, x); +@@ -165,10 +165,10 @@ + WINDOW *win1 = newwin(sp->y_max - 2, sp->x_max - 2, + sp->y_beg + 1, sp->x_beg + 1); + +- if (win1 != 0 && sp->y_max > 4 && sp->x_max > 4) { ++ if (win1 != NULL && sp->y_max > 4 && sp->x_max > 4) { + WINDOW *win2 = derwin(win1, sp->y_max - 4, sp->x_max - 4, 1, 1); + +- if (win2 != 0) { ++ if (win2 != NULL) { + box(win1, 0, 0); + wrefresh(win1); + func(win2); +@@ -180,7 +180,7 @@ + delwin(win1); + touchwin(win); + } else { +- if (win1 != 0) ++ if (win1 != NULL) + delwin(win1); + beep(); + } +@@ -218,7 +218,7 @@ + ,"= resets count to zero." + ,"- negates count." + ,"? shows this help-window" +- ,0 ++ ,NULL + }; + + popup_msg(win, msgs); +@@ -230,14 +230,14 @@ + switch (sp->ch) { + case ' ': /* next test-iteration */ + if (has_colors()) { +- if ((sp->c_msg = color_params(++(sp->c), &(sp->pair))) == 0) { ++ if ((sp->c_msg = color_params(++(sp->c), &(sp->pair))) == NULL) { + sp->c_msg = color_params(sp->c = 0, &(sp->pair)); +- if ((sp->v_msg = video_params(++(sp->v), &(sp->attr))) == 0) { ++ if ((sp->v_msg = video_params(++(sp->v), &(sp->attr))) == NULL) { + sp->v_msg = video_params(sp->v = 0, &(sp->attr)); + } + } + } else { +- if ((sp->v_msg = video_params(++(sp->v), &(sp->attr))) == 0) { ++ if ((sp->v_msg = video_params(++(sp->v), &(sp->attr))) == NULL) { + sp->v_msg = video_params(sp->v = 0, &(sp->attr)); + } + } +Index: test/clip_printw.c +Prereq: 1.25 +--- ncurses-6.5-20241130+/test/clip_printw.c 2024-10-06 22:36:25.000000000 +0000 ++++ ncurses-6.5-20241207/test/clip_printw.c 2024-12-07 22:22:51.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: clip_printw.c,v 1.25 2024/10/06 22:36:25 tom Exp $ ++ * $Id: clip_printw.c,v 1.26 2024/12/07 22:22:51 tom Exp $ + * + * demonstrate how to use printw with/without wrapping. + */ +@@ -122,7 +122,7 @@ + }; + /* *INDENT-ON* */ + +- const char *result = 0; ++ const char *result = NULL; + + if (has_colors()) { + static bool first = TRUE; +@@ -161,7 +161,7 @@ + }; + /* *INDENT-ON* */ + +- const char *result = 0; ++ const char *result = NULL; + + if (state < SIZEOF(table)) { + *attr = table[state].attr; +@@ -201,9 +201,9 @@ + wmove(win, 0, 0); + wprintw(win, "Clip %s", sp->single ? "line" : "window"); + wprintw(win, " Count %d", sp->count); +- if (sp->v_msg != 0) ++ if (sp->v_msg != NULL) + wprintw(win, " Video %s", sp->v_msg); +- if (sp->c_msg != 0) ++ if (sp->c_msg != NULL) + wprintw(win, " Color %s", sp->c_msg); + wprintw(win, " (%d)", sp->status); + wclrtoeol(win); +@@ -219,14 +219,14 @@ + sp->y_beg + MARGIN, + sp->x_beg + MARGIN); + +- if (win1 != 0 && sp->y_max > 4 && sp->x_max > 4) { ++ if (win1 != NULL && sp->y_max > 4 && sp->x_max > 4) { + WINDOW *win2 = derwin(win1, + sp->y_max - (2 * MARGIN) - 2, + sp->x_max - (2 * MARGIN) - 2, + (win == stdscr) ? Y_BASE : Y_BASE, + MARGIN); + +- if (win2 != 0) { ++ if (win2 != NULL) { + box(win1, 0, 0); + wrefresh(win1); + func(win2); +@@ -283,7 +283,7 @@ + ,". calls vw_printw at the current position with the given count." + ,"= resets count to zero." + ,"? shows this help-window" +- ,0 ++ ,NULL + }; + + popup_msg(win, msgs); +@@ -297,14 +297,14 @@ + switch (sp->ch) { + case ' ': /* next test-iteration */ + if (has_colors()) { +- if ((sp->c_msg = color_params(++(sp->c), &(sp->pair))) == 0) { ++ if ((sp->c_msg = color_params(++(sp->c), &(sp->pair))) == NULL) { + sp->c_msg = color_params(sp->c = 0, &(sp->pair)); +- if ((sp->v_msg = video_params(++(sp->v), &(sp->attr))) == 0) { ++ if ((sp->v_msg = video_params(++(sp->v), &(sp->attr))) == NULL) { + sp->v_msg = video_params(sp->v = 0, &(sp->attr)); + } + } + } else { +- if ((sp->v_msg = video_params(++(sp->v), &(sp->attr))) == 0) { ++ if ((sp->v_msg = video_params(++(sp->v), &(sp->attr))) == NULL) { + sp->v_msg = video_params(sp->v = 0, &(sp->attr)); + } + } +@@ -396,7 +396,7 @@ + need = (unsigned) want - 1; + _nc_STRCPY(fmt, "%c%s%c", sizeof(fmt)); + } +- if ((buffer = typeMalloc(char, need + 1)) != 0) { ++ if ((buffer = typeMalloc(char, need + 1)) != NULL) { + for (j = 0; j < need; ++j) { + buffer[j] = (char) ('A' + (j % 26)); + } +Index: test/color_content.c +Prereq: 1.21 +--- ncurses-6.5-20241130+/test/color_content.c 2024-11-30 18:31:01.000000000 +0000 ++++ ncurses-6.5-20241207/test/color_content.c 2024-12-07 22:22:51.000000000 +0000 +@@ -26,7 +26,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: color_content.c,v 1.21 2024/11/30 18:31:01 tom Exp $ ++ * $Id: color_content.c,v 1.22 2024/12/07 22:22:51 tom Exp $ + */ + + #define NEED_TIME_H +@@ -186,7 +186,7 @@ + my_color_t g; + my_color_t b; + if (ColorContent(color, &r, &g, &b) == OK) { +- if (expected != 0) { ++ if (expected != NULL) { + if (r != expected[color].r) + success = FALSE; + if (g != expected[color].g) +Index: test/color_name.h +Prereq: 1.10 +--- ncurses-6.5-20241130+/test/color_name.h 2024-10-05 19:26:24.000000000 +0000 ++++ ncurses-6.5-20241207/test/color_name.h 2024-12-07 22:17:24.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: color_name.h,v 1.10 2024/10/05 19:26:24 tom Exp $ ++ * $Id: color_name.h,v 1.11 2024/12/07 22:17:24 tom Exp $ + */ + + #ifndef __COLORNAME_H +@@ -62,10 +62,10 @@ + color_code(const char *color) + { + int result = 0; +- char *endp = 0; ++ char *endp = NULL; + + if ((result = (int) strtol(color, &endp, 0)) >= 0 +- && (endp == 0 || *endp == 0)) { ++ && (endp == NULL || *endp == 0)) { + ; + } else if (!strcmp(color, "default")) { + result = -1; +@@ -87,7 +87,7 @@ + color_name(int color) + { + static char temp[20]; +- const char *result = 0; ++ const char *result = NULL; + + if (color >= (int) SIZEOF(the_color_names)) { + _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) "%d", color); +Index: test/combine.c +Prereq: 1.25 +--- ncurses-6.5-20241130+/test/combine.c 2024-11-30 19:08:20.000000000 +0000 ++++ ncurses-6.5-20241207/test/combine.c 2024-12-07 22:22:51.000000000 +0000 +@@ -26,7 +26,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: combine.c,v 1.25 2024/11/30 19:08:20 tom Exp $ ++ * $Id: combine.c,v 1.26 2024/12/07 22:22:51 tom Exp $ + */ + + #include <test.priv.h> +@@ -174,7 +174,7 @@ + ++d; + } + popup_msg2(current, msgs); +- for (s = 0; msgs[s] != 0; ++s) { ++ for (s = 0; msgs[s] != NULL; ++s) { + free(msgs[s]); + } + free(msgs); +Index: test/demo_altkeys.c +Prereq: 1.17 +--- ncurses-6.5-20241130+/test/demo_altkeys.c 2023-02-25 18:08:02.000000000 +0000 ++++ ncurses-6.5-20241207/test/demo_altkeys.c 2024-12-07 23:02:27.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2018-2022,2023 Thomas E. Dickey * ++ * Copyright 2018-2023,2024 Thomas E. Dickey * + * Copyright 2005-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: demo_altkeys.c,v 1.17 2023/02/25 18:08:02 tom Exp $ ++ * $Id: demo_altkeys.c,v 1.18 2024/12/07 23:02:27 tom Exp $ + * + * Demonstrate the define_key() function. + * Thomas Dickey - 2005/10/22 +@@ -49,7 +49,7 @@ + { + FILE *fp; + +- if ((fp = fopen(MY_LOGFILE, "a")) != 0) { ++ if ((fp = fopen(MY_LOGFILE, "a")) != NULL) { + char temp[256]; + int y, x, n; + int need = sizeof(temp) - 1; +@@ -114,7 +114,7 @@ + unlink(MY_LOGFILE); + + setlocale(LC_ALL, ""); +- if (newterm(0, stdout, stdin) == 0) { ++ if (newterm(NULL, stdout, stdin) == NULL) { + fprintf(stderr, "Cannot initialize terminal\n"); + ExitProgram(EXIT_FAILURE); + } +@@ -135,7 +135,7 @@ + } + for (n = KEY_MIN; n < KEY_MAX; ++n) { + char *value; +- if ((value = keybound(n, 0)) != 0) { ++ if ((value = keybound(n, 0)) != NULL) { + size_t need = strlen(value) + 2; + char *temp = typeMalloc(char, need); + _nc_SPRINTF(temp, _nc_SLIMIT(need) "\033%s", value); +@@ -158,7 +158,7 @@ + printw("Keycode %d, name %s%s\n", + ch, + escaped ? "ESC-" : "", +- name != 0 ? name : "<null>"); ++ name != NULL ? name : "<null>"); + log_last_line(stdscr); + clrtoeol(); + if (ch == 'q') +Index: test/demo_defkey.c +Prereq: 1.36 +--- ncurses-6.5-20241130+/test/demo_defkey.c 2024-10-05 18:20:04.000000000 +0000 ++++ ncurses-6.5-20241207/test/demo_defkey.c 2024-12-07 22:22:51.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: demo_defkey.c,v 1.36 2024/10/05 18:20:04 tom Exp $ ++ * $Id: demo_defkey.c,v 1.37 2024/12/07 22:22:51 tom Exp $ + * + * Demonstrate the define_key() function. + * Thomas Dickey - 2002/11/23 +@@ -47,7 +47,7 @@ + { + FILE *fp; + +- if ((fp = fopen(MY_LOGFILE, "a")) != 0) { ++ if ((fp = fopen(MY_LOGFILE, "a")) != NULL) { + char temp[256]; + int y, x, n; + int need = sizeof(temp) - 1; +@@ -98,7 +98,7 @@ + static char * + visible(const char *string) + { +- char *result = 0; ++ char *result = NULL; + + if (VALID_STRING(string) && *string != '\0') { + int pass; +@@ -130,15 +130,15 @@ + int rc; + const char *code_name = keyname(code); + char *old_string; +- char *vis_string = 0; ++ char *vis_string = NULL; + char temp[80]; + +- if (code_name == 0) { ++ if (code_name == NULL) { + _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) "Keycode %d", code); + code_name = temp; + } + +- if ((old_string = keybound(code, 0)) != 0) { ++ if ((old_string = keybound(code, 0)) != NULL) { + wprintw(win, "%s is %s\n", + code_name, + vis_string = visible(old_string)); +@@ -153,7 +153,7 @@ + if ((rc = key_defined(new_string)) > 0) { + wprintw(win, "%s was bound to %s\n", vis_string, keyname(rc)); + log_last_line(win); +- } else if (new_string != 0 && rc < 0) { ++ } else if (new_string != NULL && rc < 0) { + wprintw(win, "%s conflicts with longer strings\n", vis_string); + log_last_line(win); + } +@@ -161,18 +161,18 @@ + if (rc == ERR) { + wprintw(win, "%s unchanged\n", code_name); + log_last_line(win); +- } else if (new_string != 0) { ++ } else if (new_string != NULL) { + wprintw(win, "%s is now bound to %s\n", + vis_string, + code_name); + log_last_line(win); +- } else if (old_string != 0) { ++ } else if (old_string != NULL) { + wprintw(win, "%s deleted\n", code_name); + log_last_line(win); + } +- if (vis_string != 0) ++ if (vis_string != NULL) + free(vis_string); +- if (old_string != 0) ++ if (old_string != NULL) + free(old_string); + } + +@@ -182,14 +182,14 @@ + char *value = tigetstr(name); + + if (VALID_STRING(value)) { +- const char *prefix = 0; ++ const char *prefix = NULL; + + if (!(strncmp) (value, "\033[", (size_t) 2)) { + prefix = "\033O"; + } else if (!(strncmp) (value, "\033O", (size_t) 2)) { + prefix = "\033["; + } +- if (prefix != 0) { ++ if (prefix != NULL) { + char temp[BUFSIZ]; + _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp)) + "%s%s", prefix, value + 2); +@@ -207,7 +207,7 @@ + static void + remove_definition(WINDOW *win, int code) + { +- really_define_key(win, 0, code); ++ really_define_key(win, NULL, code); + } + + static void +@@ -297,7 +297,7 @@ + const char *name = keyname(ch); + wprintw(win, "Keycode %d, name %s\n", + ch, +- name != 0 ? name : "<null>"); ++ name != NULL ? name : "<null>"); + log_last_line(win); + wclrtoeol(win); + if (ch == 'q') +Index: test/demo_forms.c +Prereq: 1.67 +--- ncurses-6.5-20241130+/test/demo_forms.c 2024-10-06 21:15:12.000000000 +0000 ++++ ncurses-6.5-20241207/test/demo_forms.c 2024-12-07 22:27:13.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: demo_forms.c,v 1.67 2024/10/06 21:15:12 tom Exp $ ++ * $Id: demo_forms.c,v 1.68 2024/12/07 22:27:13 tom Exp $ + * + * Demonstrate a variety of functions from the form library. + * Thomas Dickey - 2003/4/26 +@@ -50,7 +50,7 @@ + static int j_value = 0; + static int m_value = 0; + static int o_value = 0; +-static char *t_value = 0; ++static char *t_value = NULL; + + static void + failed(const char *s) +@@ -82,9 +82,9 @@ + get_data(const char *name) + { + char *result = t_value; +- if (my_data != 0) { ++ if (my_data != NULL) { + int n; +- for (n = 0; my_data[n].name != 0; ++n) { ++ for (n = 0; my_data[n].name != NULL; ++n) { + if (!strcmp(name, my_data[n].name)) { + result = my_data[n].value; + break; +@@ -102,21 +102,21 @@ + { + FILE *fp = fopen(filename, "r"); + +- if (fp != 0) { ++ if (fp != NULL) { + char buffer[BUFSIZ]; + char *colon; + int more = 0; + int item = 0; + + my_data = typeCalloc(MY_DATA, (size_t) 100); /* FIXME */ +- while (fgets(buffer, sizeof(buffer), fp) != 0) { ++ while (fgets(buffer, sizeof(buffer), fp) != NULL) { + chomp(buffer); + if (more) { + if (strcmp(buffer, ".")) { + char *prior = my_data[more - 1].value; + size_t need = strlen(buffer) + 2 + strlen(prior); + char *value = typeRealloc(char, need, prior); +- if (value == 0) ++ if (value == NULL) + failed("realloc"); + _nc_STRCAT(value, "\n", need); + _nc_STRCAT(value, buffer, need); +@@ -126,13 +126,13 @@ + } + } else if (*buffer == '#') { + continue; +- } else if ((colon = strchr(buffer, ':')) != 0) { ++ } else if ((colon = strchr(buffer, ':')) != NULL) { + char *name; + char *value; + *colon++ = '\0'; + name = strdup(buffer); + value = strdup(colon); +- if (name == 0 || value == 0) ++ if (name == NULL || value == NULL) + failed("strdup"); + my_data[item].name = name; + my_data[item].value = value; +@@ -245,10 +245,10 @@ + another_field(NCURSES_CONST FORM *form, NCURSES_CONST FIELD *const field) + { + FIELD **f = form_fields(form); +- FIELD *result = 0; ++ FIELD *result = NULL; + int n; + +- for (n = 0; f[n] != 0; ++n) { ++ for (n = 0; f[n] != NULL; ++n) { + if (f[n] != field) { + result = f[n]; + field_opts_on(result, O_SELECTABLE); +@@ -273,7 +273,7 @@ + help_edit_field(); + break; + case MY_EDT_MODE: +- if ((field = current_field(form)) != 0) { ++ if ((field = current_field(form)) != NULL) { + set_current_field(form, another_field(form, field)); + if ((unsigned) field_opts(field) & O_EDIT) { + field_opts_off(field, O_EDIT); +@@ -324,7 +324,7 @@ + waddstr(win, " behind"); + waddch(win, '\n'); + +- if ((field = current_field(form)) != 0) { ++ if ((field = current_field(form)) != NULL) { + NCURSES_CONST FIELDTYPE *type; + int nbuf; + +@@ -333,7 +333,7 @@ + new_page(field) ? "*" : "", + field_index(field), field_count(form), + field_arg(field) ? "(arg)" : ""); +- if ((type = field_type(field)) != 0) { ++ if ((type = field_type(field)) != NULL) { + if (type == TYPE_ALNUM) + waddstr(win, "ALNUM"); + else if (type == TYPE_ALPHA) +@@ -384,7 +384,7 @@ + waddstr(win, "\n"); + for (nbuf = 0; nbuf <= 2; ++nbuf) { + NCURSES_CONST char *buffer; +- if ((buffer = field_buffer(field, nbuf)) != 0) { ++ if ((buffer = field_buffer(field, nbuf)) != NULL) { + wprintw(win, "buffer %d:", nbuf); + (void) wattrset(win, A_REVERSE); + if (nbuf) { +@@ -410,7 +410,7 @@ + int pg; + NCURSES_CONST char *fname; + static NCURSES_CONST char *my_enum[] = +- {"first", "second", "third", 0}; ++ {"first", "second", "third", NULL}; + + #ifdef NCURSES_MOUSE_VERSION + mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0); +@@ -514,7 +514,7 @@ + + f[n] = (FIELD *) 0; + +- if ((form = new_form(f)) != 0) { ++ if ((form = new_form(f)) != NULL) { + NCURSES_CONST WINDOW *w; + WINDOW *also; + int finished = 0; +@@ -543,7 +543,7 @@ + + free_form(form); + } +- for (c = 0; f[c] != 0; c++) { ++ for (c = 0; f[c] != NULL; c++) { + free_edit_field(f[c]); + free_field(f[c]); + } +Index: test/demo_keyok.c +Prereq: 1.10 +--- ncurses-6.5-20241130+/test/demo_keyok.c 2024-08-24 17:16:49.000000000 +0000 ++++ ncurses-6.5-20241207/test/demo_keyok.c 2024-12-07 22:22:51.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: demo_keyok.c,v 1.10 2024/08/24 17:16:49 tom Exp $ ++ * $Id: demo_keyok.c,v 1.11 2024/12/07 22:22:51 tom Exp $ + * + * Demonstrate the keyok() function. + * Thomas Dickey - 2002/11/23 +@@ -100,7 +100,7 @@ + prior = ch; + wprintw(win, "Keycode %d, name %s\n", + ch, +- name != 0 ? name : "<null>"); ++ name != NULL ? name : "<null>"); + wclrtoeol(win); + wrefresh(win); + if (ch >= KEY_MIN) { +Index: test/demo_menus.c +Prereq: 1.85 +--- ncurses-6.5-20241130+/test/demo_menus.c 2024-11-30 18:52:09.000000000 +0000 ++++ ncurses-6.5-20241207/test/demo_menus.c 2024-12-07 22:27:13.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: demo_menus.c,v 1.85 2024/11/30 18:52:09 tom Exp $ ++ * $Id: demo_menus.c,v 1.86 2024/12/07 22:27:13 tom Exp $ + * + * Demonstrate a variety of functions from the menu library. + * Thomas Dickey - 2005/4/9 +@@ -311,9 +311,9 @@ + menu_destroy(MENU * m, int itemsToo) + { + Trace(("menu_destroy %p", (void *) m)); +- if (m != 0) { ++ if (m != NULL) { + ITEM **items = menu_items(m); +- const char *blob = 0; ++ const char *blob = NULL; + int count; + + count = item_count(m); +@@ -335,7 +335,7 @@ + if (count > 0 && itemsToo) { + if (itemsToo & 1) { + ITEM **ip = items; +- if (ip != 0) { ++ if (ip != NULL) { + while (*ip) + free_item(*ip++); + } +@@ -362,14 +362,14 @@ + static MENU_DATA table[] = + { + {"Exit", call_files, 0}, +- {(char *) 0, 0, 0} ++ {(char *) 0, NULL, 0} + }; + static ITEM *items[SIZEOF(table)]; + + ITEM **ip = items; + int n; + +- for (n = 0; table[n].name != 0; ++n) { ++ for (n = 0; table[n].name != NULL; ++n) { + *ip = new_item(table[n].name, empty); + set_item_userptr(*ip, (void *) &table[n]); + ++ip; +@@ -413,17 +413,17 @@ + MY_DATA("Pumas"), + MY_DATA("Lions, Tigers, Bears, (Oh my!), Newts, Platypi, Lemurs"), + MY_DATA("Lions, Tigers, Bears, (Oh my!), Newts, Platypi, Lemurs, Lions, Tigers, Bears, (Oh my!), Newts, Platypi, Lemurs"), +- {(char *) 0, 0, 0} ++ {(char *) 0, NULL, 0} + }; + static ITEM **items; + + ITEM **ip; +- MENU_DATA *ap = 0; +- MENU_DATA *myList = 0; ++ MENU_DATA *ap = NULL; ++ MENU_DATA *myList = NULL; + int i; + size_t count = 0; + +- if (filename != 0) { ++ if (filename != NULL) { + struct stat sb; + if (stat(filename, &sb) == 0 + && (sb.st_mode & S_IFMT) == S_IFREG +@@ -436,9 +436,9 @@ + Trace(("build_select_menu blob=%p, items=%p", + (void *) blob, + (void *) items)); +- if (blob != 0 && list != 0) { ++ if (blob != NULL && list != NULL) { + FILE *fp = fopen(filename, "r"); +- if (fp != 0) { ++ if (fp != NULL) { + if (fread(blob, sizeof(char), size, fp) == size) { + bool mark = TRUE; + unsigned j, k; +@@ -456,7 +456,7 @@ + blob[j] = ' '; /* menu items are printable */ + } + } +- list[k].name = 0; ++ list[k].name = NULL; + count = k; + ap = myList = list; + } +@@ -464,28 +464,28 @@ + } + loaded_file = TRUE; + } +- if (ap == 0) ++ if (ap == NULL) + free(items); + } + } +- if (ap == 0) { ++ if (ap == NULL) { + count = SIZEOF(table) - 1; + items = typeCalloc(ITEM *, count + 1); + ap = table; + } + + ip = items; +- for (i = 0; ap[i].name != 0; ++i) { ++ for (i = 0; ap[i].name != NULL; ++i) { + ap[i].func = call_select; + ap[i].mask = (unsigned) i; + *ip = new_item(ap[i].name, empty); + set_item_userptr(*ip, (void *) &table[i]); + ++ip; + } +- *ip = 0; ++ *ip = NULL; + + mpSelect = menu_create(items, (int) count, 1, number); +- if (myList != 0) ++ if (myList != NULL) + free(myList); + } + +@@ -527,7 +527,7 @@ + T_TBL(TRACE_ATTRS), + T_TBL(TRACE_MAXIMUM), + { +- (char *) 0, 0, 0 ++ (char *) 0, NULL, 0 + } + }; + +@@ -539,7 +539,7 @@ + ITEM **ip = items; + int n; + +- for (n = 0; t_tbl[n].name != 0; n++) { ++ for (n = 0; t_tbl[n].name != NULL; n++) { + *ip = new_item(t_tbl[n].name, empty); + set_item_userptr(*ip, (void *) &t_tbl[n]); + ++ip; +@@ -556,8 +556,8 @@ + static size_t need = 12; + int n; + +- if (buf == 0) { +- for (n = 0; t_tbl[n].name != 0; n++) ++ if (buf == NULL) { ++ for (n = 0; t_tbl[n].name != NULL; n++) + need += strlen(t_tbl[n].name) + 2; + buf = typeMalloc(char, need); + if (!buf) +@@ -568,7 +568,7 @@ + _nc_STRCAT(buf, t_tbl[0].name ? t_tbl[0].name : "", need); + _nc_STRCAT(buf, ", ", need); + } else { +- for (n = 1; t_tbl[n].name != 0; n++) ++ for (n = 1; t_tbl[n].name != NULL; n++) + if ((tlevel & t_tbl[n].mask) == t_tbl[n].mask) { + _nc_STRCAT(buf, t_tbl[n].name, need); + _nc_STRCAT(buf, ", ", need); +@@ -595,7 +595,7 @@ + if (i == items[0]) { + if (item_value(i)) { + ITEM **p; +- for (p = items + 1; *p != 0; p++) ++ for (p = items + 1; *p != NULL; p++) + if (item_value(*p)) { + set_item_value(*p, FALSE); + changed = TRUE; +@@ -670,7 +670,7 @@ + break; + #endif + default: +- result = 0; ++ result = NULL; + break; + } + return result; +@@ -693,14 +693,14 @@ + #ifdef TRACE + {"Trace", call_menus, 2}, + #endif +- {(char *) 0, 0, 0} ++ {(char *) 0, NULL, 0} + }; + static ITEM *items[SIZEOF(table)]; + + ITEM **ip = items; + int n; + +- for (n = 0; table[n].name != 0; ++n) { ++ for (n = 0; table[n].name != NULL; ++n) { + *ip = new_item(table[n].name, empty); + set_item_userptr(*ip, (void *) &table[n]); + ++ip; +@@ -1023,7 +1023,7 @@ + #endif /* HAVE_RIPOFFLINE */ + #ifdef TRACE + case 'D': +- curses_trace((unsigned) strtoul(optarg, 0, 0)); ++ curses_trace((unsigned) strtoul(optarg, NULL, 0)); + break; + #endif + case OPTS_VERSION: +@@ -1046,7 +1046,7 @@ + init_pair(2, COLOR_BLUE, COLOR_WHITE); + } + status = newwin(3, COLS, LINES - 3, 0); +- build_menus(argc > 1 ? argv[1] : 0); ++ build_menus(argc > 1 ? argv[1] : NULL); + perform_menus(); + destroy_menus(); + +Index: test/demo_new_pair.c +Prereq: 1.31 +--- ncurses-6.5-20241130+/test/demo_new_pair.c 2024-11-09 20:43:56.000000000 +0000 ++++ ncurses-6.5-20241207/test/demo_new_pair.c 2024-12-07 22:22:51.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: demo_new_pair.c,v 1.31 2024/11/09 20:43:56 tom Exp $ ++ * $Id: demo_new_pair.c,v 1.32 2024/12/07 22:22:51 tom Exp $ + * + * Demonstrate the alloc_pair() function. + */ +@@ -50,7 +50,7 @@ + valid_cap(NCURSES_CONST char *name) + { + const char *value = tigetstr(name); +- return (value != 0 && value != (char *) -1) ? TRUE : FALSE; ++ return (value != NULL && value != (char *) -1) ? TRUE : FALSE; + } + + static attr_t +@@ -188,7 +188,7 @@ + " ? print this screen (exit on any character).", + "", + "To exit this program, press ^Q, ^[ or \"q\".", +- 0 ++ NULL + }; + + bool done = FALSE; +@@ -243,7 +243,7 @@ + fprintf(stderr, "cannot open terminal for output\n"); + ExitProgram(EXIT_FAILURE); + } +- if (newterm(NULL, output, stdin) == 0) { ++ if (newterm(NULL, output, stdin) == NULL) { + fprintf(stderr, "Cannot initialize terminal\n"); + if (output != NULL) + fclose(output); +Index: test/demo_panels.c +Prereq: 1.52 +--- ncurses-6.5-20241130+/test/demo_panels.c 2024-11-23 19:07:23.000000000 +0000 ++++ ncurses-6.5-20241207/test/demo_panels.c 2024-12-07 22:27:13.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: demo_panels.c,v 1.52 2024/11/23 19:07:23 tom Exp $ ++ * $Id: demo_panels.c,v 1.53 2024/12/07 22:27:13 tom Exp $ + * + * Demonstrate a variety of functions from the panel library. + */ +@@ -52,18 +52,18 @@ + static void + close_input(void) + { +- if (log_in != 0) { ++ if (log_in != NULL) { + fclose(log_in); +- log_in = 0; ++ log_in = NULL; + } + } + + static void + close_output(void) + { +- if (log_out != 0) { ++ if (log_out != NULL) { + fclose(log_out); +- log_out = 0; ++ log_out = NULL; + } + } + +@@ -88,7 +88,7 @@ + saywhat(NCURSES_CONST char *text) + { + WINDOW *win = statusline(); +- if (text != 0 && *text != '\0') { ++ if (text != NULL && *text != '\0') { + waddstr(win, text); + waddstr(win, "; "); + } +@@ -124,7 +124,7 @@ + + show_position(text, also, which, y1, x1); + +- if (log_in != 0) { ++ if (log_in != NULL) { + if (fscanf(log_in, "%c%d,%d\n", &cmd, &y1, &x1) == 3) { + switch (cmd) { + case LAST_POS: +@@ -204,12 +204,12 @@ + mkpanel(short color, int rows, int cols, int tly, int tlx) + { + WINDOW *win; +- PANEL *pan = 0; ++ PANEL *pan = NULL; + char *userdata = typeMalloc(char, 6); + +- if ((win = newwin(rows, cols, tly, tlx)) != 0) { ++ if ((win = newwin(rows, cols, tly, tlx)) != NULL) { + keypad(win, TRUE); +- if ((pan = new_panel(win)) == 0) { ++ if ((pan = new_panel(win)) == NULL) { + delwin(win); + } else if (use_colors) { + short fg = (short) ((color == COLOR_BLUE) +@@ -231,7 +231,7 @@ + static void + my_remove_panel(PANEL **pans, int which) + { +- if (pans[which] != 0) { ++ if (pans[which] != NULL) { + PANEL *pan = pans[which]; + WINDOW *win = panel_window(pan); + char *user = (char *) panel_userptr(pan); +@@ -240,7 +240,7 @@ + del_panel(pan); + delwin(win); + +- pans[which] = 0; ++ pans[which] = NULL; + } + } + +@@ -297,7 +297,7 @@ + static void + my_move_panel(PANEL **pans, int which, bool continuous) + { +- if (pans[which] != 0) { ++ if (pans[which] != NULL) { + int code; + int y0, x0; + int y1, x1; +@@ -322,7 +322,7 @@ + static void + my_resize_panel(PANEL **pans, int which, FillPanel myFill) + { +- if (pans[which] != 0) { ++ if (pans[which] != NULL) { + int code; + int y0, x0; + int y1, x1; +@@ -341,7 +341,7 @@ + ABS(x1 - x0) + 1, + MIN(y0, y1), + MIN(x0, x1)); +- if (next != 0) { ++ if (next != NULL) { + keypad(next, TRUE); + if (use_colors) { + wbkgdset(next, (chtype) (COLOR_PAIR(which) | ' ')); +@@ -411,7 +411,7 @@ + + source[0] = (wchar_t) (digit + 0xff10); + source[1] = 0; +- setcchar(target, source, A_NORMAL, 0, 0); ++ setcchar(target, source, A_NORMAL, 0, NULL); + } + + static void +@@ -507,7 +507,7 @@ + + memset(table, 0, sizeof(table)); + for (j = 1; j <= MAX_PANELS; ++j) { +- table[j].valid = (px[j] != 0); ++ table[j].valid = (px[j] != NULL); + if (table[j].valid) { + table[j].hidden = panel_hidden(px[j]) ? TRUE : FALSE; + table[j].above = panel_above(px[j]); +@@ -515,11 +515,11 @@ + } + } + +- if ((win = newwin(LINES - 1, COLS, 0, 0)) != 0) { ++ if ((win = newwin(LINES - 1, COLS, 0, 0)) != NULL) { + PANEL *pan; + + keypad(win, TRUE); +- if ((pan = new_panel(win)) != 0) { ++ if ((pan = new_panel(win)) != NULL) { + werase(win); + MvWPrintw(win, 0, 0, "Panels:\n"); + for (j = 1; j <= MAX_PANELS; ++j) { +@@ -554,7 +554,7 @@ + static int my_##func(PANEL *pan) \ + { \ + int code = ERR; \ +- if (pan != 0) { \ ++ if (pan != NULL) { \ + code = func(pan); \ + } \ + return code; \ +@@ -578,7 +578,7 @@ + return; + } + +- if (log_in != 0) { ++ if (log_in != NULL) { + pflush(); + } + +@@ -617,7 +617,7 @@ + static bool + ok_letter(int ch) + { +- return isalpha(UChar(ch)) && strchr("bcdhmMrst", ch) != 0; ++ return isalpha(UChar(ch)) && strchr("bcdhmMrst", ch) != NULL; + } + + static bool +@@ -644,8 +644,8 @@ + waddstr(win, "Command:"); + buffer[length = 0] = '\0'; + +- if (log_in != 0) { +- if (fgets(buffer, limit - 3, log_in) != 0) { ++ if (log_in != NULL) { ++ if (fgets(buffer, limit - 3, log_in) != NULL) { + length = (int) strlen(buffer); + while (length > 0 && isspace(UChar(buffer[length - 1]))) + buffer[--length] = '\0'; +Index: test/demo_termcap.c +Prereq: 1.72 +--- ncurses-6.5-20241130+/test/demo_termcap.c 2024-11-30 18:31:01.000000000 +0000 ++++ ncurses-6.5-20241207/test/demo_termcap.c 2024-12-07 22:27:13.000000000 +0000 +@@ -30,7 +30,7 @@ + /* + * Author: Thomas E. Dickey + * +- * $Id: demo_termcap.c,v 1.72 2024/11/30 18:31:01 tom Exp $ ++ * $Id: demo_termcap.c,v 1.73 2024/12/07 22:27:13 tom Exp $ + * + * A simple demo of the termcap interface. + */ +@@ -101,7 +101,7 @@ + static long total_n_values; + static long total_s_values; + +-#define isCapName(c) (isgraph(c) && strchr("^=:\\", c) == 0) ++#define isCapName(c) (isgraph(c) && strchr("^=:\\", c) == NULL) + #define EachCapName(n) n = 33; n < 127; ++n + + static char * +@@ -150,17 +150,17 @@ + static char * + next_dbitem(void) + { +- char *result = 0; ++ char *result = NULL; + + if (db_list) { +- if ((result = db_list[db_item]) == 0) { ++ if ((result = db_list[db_item]) == NULL) { + db_item = 0; + result = db_list[0]; + } else { + db_item++; + } + } +- if (result != 0) ++ if (result != NULL) + printf("** %s\n", result); + return result; + } +@@ -174,7 +174,7 @@ + for (n = 0; db_list[n]; ++n) + free(db_list[n]); + free(db_list); +- db_list = 0; ++ db_list = NULL; + } + } + #endif /* NO_LEAKS */ +@@ -259,7 +259,7 @@ + NCURSES_CONST char *str; + int num; + +- if ((str = tgetstr(cap, &ap)) != 0) { ++ if ((str = tgetstr(cap, &ap)) != NULL) { + total_values++; + total_s_values++; + if (!q_opt) { +@@ -343,7 +343,7 @@ + if (b_opt) { + for (n = 0;; ++n) { + cap = my_boolcodes[n]; +- if (cap == 0) ++ if (cap == NULL) + break; + dumpit(cap); + } +@@ -352,7 +352,7 @@ + if (n_opt) { + for (n = 0;; ++n) { + cap = my_numcodes[n]; +- if (cap == 0) ++ if (cap == NULL) + break; + dumpit(cap); + } +@@ -361,16 +361,16 @@ + if (s_opt) { + for (n = 0;; ++n) { + cap = my_strcodes[n]; +- if (cap == 0) ++ if (cap == NULL) + break; + dumpit(cap); + } + } + #ifdef NCURSES_VERSION +- if (x_opt && (my_blob == 0) && y_opt) { ++ if (x_opt && (my_blob == NULL) && y_opt) { + #if NCURSES_XNAMES + NCURSES_CONST TERMTYPE *term = (TERMTYPE *) cur_term; +- if (term != 0 ++ if (term != NULL + && ((NUM_BOOLEANS(term) != BOOLCOUNT) + || (NUM_NUMBERS(term) != NUMCOUNT) + || (NUM_STRINGS(term) != STRCOUNT))) { +@@ -429,16 +429,16 @@ + * None of the arrays could be larger than the input-file, and since it + * is small, just allocate the maximum for simplicity. + */ +- if ((my_blob = malloc((size_t) sb.st_size + 1)) == 0 || +- (my_boolcodes = typeCalloc(char *, sb.st_size)) == 0 || +- (my_numcodes = typeCalloc(char *, sb.st_size)) == 0 || +- (my_numvalues = typeCalloc(char *, sb.st_size)) == 0 || +- (my_strcodes = typeCalloc(char *, sb.st_size)) == 0 || +- (my_strvalues = typeCalloc(char *, sb.st_size)) == 0) { ++ if ((my_blob = malloc((size_t) sb.st_size + 1)) == NULL || ++ (my_boolcodes = typeCalloc(char *, sb.st_size)) == NULL || ++ (my_numcodes = typeCalloc(char *, sb.st_size)) == NULL || ++ (my_numvalues = typeCalloc(char *, sb.st_size)) == NULL || ++ (my_strcodes = typeCalloc(char *, sb.st_size)) == NULL || ++ (my_strvalues = typeCalloc(char *, sb.st_size)) == NULL) { + failed("cannot allocate memory for input-file"); + } + +- if ((fp = fopen(input_name, "r")) == 0) { ++ if ((fp = fopen(input_name, "r")) == NULL) { + failed("cannot open input-file"); + } else { + len = fread(my_blob, sizeof(char), (size_t) sb.st_size, fp); +@@ -674,11 +674,11 @@ + break; + } + } +- my_boolcodes[count_bools] = 0; +- my_numcodes[count_nums] = 0; +- my_numvalues[count_nums] = 0; +- my_strcodes[count_strs] = 0; +- my_strvalues[count_strs] = 0; ++ my_boolcodes[count_bools] = NULL; ++ my_numcodes[count_nums] = NULL; ++ my_numvalues[count_nums] = NULL; ++ my_strcodes[count_strs] = NULL; ++ my_strvalues[count_strs] = NULL; + + #if 0 + printf("bools:%d\n", (int) count_bools); +@@ -702,11 +702,11 @@ + int pass; + size_t count; + size_t length = 1; +- char **result = 0; +- char *unused = 0; ++ char **result = NULL; ++ char *unused = NULL; + + for (pass = 0; pass < 2; ++pass) { +- for (count = 0; list[count] != 0; ++count) { ++ for (count = 0; list[count] != NULL; ++count) { + size_t chunk = strlen(list[count]) + 1; + if (pass == 0) { + length += chunk; +@@ -720,7 +720,7 @@ + char *blob = malloc(length); + result = typeCalloc(char *, count + 1); + unused = blob; +- if (blob == 0 || result == 0) ++ if (blob == NULL || result == NULL) + failed("copy_code_list failed"); + } + } +@@ -786,7 +786,7 @@ + #if defined(NCURSES_VERSION) || defined(HAVE_CURSES_DATA_OSPEED) + bool v_opt = FALSE; + #endif +- NCURSES_CONST char *input_name = 0; ++ NCURSES_CONST char *input_name = NULL; + + int repeat; + int r_opt = 1; +@@ -864,7 +864,7 @@ + for (n = optind; n < argc; ++n) { + brute_force(argv[n]); + } +- } else if ((name = getenv("TERM")) != 0) { ++ } else if ((name = getenv("TERM")) != NULL) { + brute_force(name); + } else { + static NCURSES_CONST char dumb[] = "dumb"; +@@ -872,7 +872,7 @@ + } + } + } else { +- if (input_name != 0) { ++ if (input_name != NULL) { + parse_description(input_name); + } + #if USE_CODE_LISTS +@@ -891,7 +891,7 @@ + for (n = optind; n < argc; ++n) { + demo_termcap(argv[n]); + } +- } else if ((name = getenv("TERM")) != 0) { ++ } else if ((name = getenv("TERM")) != NULL) { + demo_termcap(name); + } else { + static NCURSES_CONST char dumb[] = "dumb"; +Index: test/demo_terminfo.c +Prereq: 1.61 +--- ncurses-6.5-20241130+/test/demo_terminfo.c 2024-11-30 18:31:01.000000000 +0000 ++++ ncurses-6.5-20241207/test/demo_terminfo.c 2024-12-07 22:27:13.000000000 +0000 +@@ -30,7 +30,7 @@ + /* + * Author: Thomas E. Dickey + * +- * $Id: demo_terminfo.c,v 1.61 2024/11/30 18:31:01 tom Exp $ ++ * $Id: demo_terminfo.c,v 1.62 2024/12/07 22:27:13 tom Exp $ + * + * A simple demo of the terminfo interface. + */ +@@ -141,17 +141,17 @@ + static char * + next_dbitem(void) + { +- char *result = 0; ++ char *result = NULL; + + if (db_list) { +- if ((result = db_list[db_item]) == 0) { ++ if ((result = db_list[db_item]) == NULL) { + db_item = 0; + result = db_list[0]; + } else { + db_item++; + } + } +- if (result != 0) ++ if (result != NULL) + printf("** %s\n", result); + return result; + } +@@ -165,7 +165,7 @@ + for (n = 0; db_list[n]; ++n) + free(db_list[n]); + free(db_list); +- db_list = 0; ++ db_list = NULL; + } + } + #endif +@@ -176,7 +176,7 @@ + const char *str; + int num; + +- if ((str = tigetstr(cap)) != 0 && (str != (char *) -1)) { ++ if ((str = tigetstr(cap)) != NULL && (str != (char *) -1)) { + total_values++; + total_s_values++; + if (!q_opt) { +@@ -339,7 +339,7 @@ + if (b_opt) { + for (n = 0;; ++n) { + cap = my_boolcodes[n]; +- if (cap == 0) ++ if (cap == NULL) + break; + dumpit(cap, fullname(bool, n)); + } +@@ -348,7 +348,7 @@ + if (n_opt) { + for (n = 0;; ++n) { + cap = my_numcodes[n]; +- if (cap == 0) ++ if (cap == NULL) + break; + dumpit(cap, fullname(num, n)); + } +@@ -357,17 +357,17 @@ + if (s_opt) { + for (n = 0;; ++n) { + cap = my_strcodes[n]; +- if (cap == 0) ++ if (cap == NULL) + break; + dumpit(cap, fullname(str, n)); + } + } + #ifdef NCURSES_VERSION +- if (x_opt && (my_blob == 0)) { ++ if (x_opt && (my_blob == NULL)) { + if (y_opt) { + #if NCURSES_XNAMES + const TERMTYPE *term = (TERMTYPE *) cur_term; +- if (term != 0 ++ if (term != NULL + && ((NUM_BOOLEANS(term) != BOOLCOUNT) + || (NUM_NUMBERS(term) != NUMCOUNT) + || (NUM_STRINGS(term) != STRCOUNT))) { +@@ -455,16 +455,16 @@ + * None of the arrays could be larger than the input-file, and since it + * is small, just allocate the maximum for simplicity. + */ +- if ((my_blob = malloc((size_t) sb.st_size + 1)) == 0 || +- (my_boolcodes = typeCalloc(char *, sb.st_size)) == 0 || +- (my_numcodes = typeCalloc(char *, sb.st_size)) == 0 || +- (my_numvalues = typeCalloc(char *, sb.st_size)) == 0 || +- (my_strcodes = typeCalloc(char *, sb.st_size)) == 0 || +- (my_strvalues = typeCalloc(char *, sb.st_size)) == 0) { ++ if ((my_blob = malloc((size_t) sb.st_size + 1)) == NULL || ++ (my_boolcodes = typeCalloc(char *, sb.st_size)) == NULL || ++ (my_numcodes = typeCalloc(char *, sb.st_size)) == NULL || ++ (my_numvalues = typeCalloc(char *, sb.st_size)) == NULL || ++ (my_strcodes = typeCalloc(char *, sb.st_size)) == NULL || ++ (my_strvalues = typeCalloc(char *, sb.st_size)) == NULL) { + failed("cannot allocate memory for input-file"); + } + +- if ((fp = fopen(input_name, "r")) == 0) { ++ if ((fp = fopen(input_name, "r")) == NULL) { + failed("cannot open input-file"); + } else { + len = fread(my_blob, sizeof(char), (size_t) sb.st_size, fp); +@@ -704,11 +704,11 @@ + break; + } + } +- my_boolcodes[count_bools] = 0; +- my_numcodes[count_nums] = 0; +- my_numvalues[count_nums] = 0; +- my_strcodes[count_strs] = 0; +- my_strvalues[count_strs] = 0; ++ my_boolcodes[count_bools] = NULL; ++ my_numcodes[count_nums] = NULL; ++ my_numvalues[count_nums] = NULL; ++ my_strcodes[count_strs] = NULL; ++ my_strvalues[count_strs] = NULL; + + #if 0 + printf("# bools:%d\n", (int) count_bools); +@@ -732,11 +732,11 @@ + int pass; + size_t count; + size_t length = 1; +- char **result = 0; +- char *unused = 0; ++ char **result = NULL; ++ char *unused = NULL; + + for (pass = 0; pass < 2; ++pass) { +- for (count = 0; list[count] != 0; ++count) { ++ for (count = 0; list[count] != NULL; ++count) { + size_t chunk = strlen(list[count]) + 1; + if (pass == 0) { + length += chunk; +@@ -750,7 +750,7 @@ + char *blob = malloc(length); + result = typeCalloc(char *, count + 1); + unused = blob; +- if (blob == 0 || result == 0) ++ if (blob == NULL || result == NULL) + failed("copy_code_list failed"); + } + } +@@ -815,7 +815,7 @@ + int repeat; + NCURSES_CONST char *name; + int r_opt = 1; +- const char *input_name = 0; ++ const char *input_name = NULL; + + while ((ch = getopt(argc, argv, OPTS_COMMON "abd:e:fi:nqr:sxy")) != -1) { + switch (ch) { +@@ -888,7 +888,7 @@ + for (n = optind; n < argc; ++n) { + brute_force(argv[n]); + } +- } else if ((name = getenv("TERM")) != 0) { ++ } else if ((name = getenv("TERM")) != NULL) { + brute_force(name); + } else { + static NCURSES_CONST char dumb[] = "dumb"; +@@ -896,7 +896,7 @@ + } + } + } else { +- if (input_name != 0) { ++ if (input_name != NULL) { + parse_description(input_name); + } + #if USE_CODE_LISTS +@@ -915,7 +915,7 @@ + for (n = optind; n < argc; ++n) { + demo_terminfo(argv[n]); + } +- } else if ((name = getenv("TERM")) != 0) { ++ } else if ((name = getenv("TERM")) != NULL) { + demo_terminfo(name); + } else { + static NCURSES_CONST char dumb[] = "dumb"; +@@ -933,8 +933,8 @@ + + #if NO_LEAKS + free_dblist(); +- if (input_name != 0) { +- if (my_blob != 0) { ++ if (input_name != NULL) { ++ if (my_blob != NULL) { + free(my_blob); + free(my_boolcodes); + free(my_numcodes); +Index: test/ditto.c +Prereq: 1.59 +--- ncurses-6.5-20241130+/test/ditto.c 2023-09-23 17:08:43.000000000 +0000 ++++ ncurses-6.5-20241207/test/ditto.c 2024-12-07 23:02:27.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2018-2022,2023 Thomas E. Dickey * ++ * Copyright 2018-2023,2024 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -30,7 +30,7 @@ + /* + * Author: Thomas E. Dickey (1998-on) + * +- * $Id: ditto.c,v 1.59 2023/09/23 17:08:43 tom Exp $ ++ * $Id: ditto.c,v 1.60 2024/12/07 23:02:27 tom Exp $ + * + * The program illustrates how to set up multiple screens from a single + * program. +@@ -157,15 +157,15 @@ + int aslave; + char slave_name[1024]; + char s_option[sizeof(slave_name) + 80]; +- const char *xterm_prog = 0; ++ const char *xterm_prog = NULL; + +- if ((xterm_prog = getenv("XTERM_PROG")) == 0) ++ if ((xterm_prog = getenv("XTERM_PROG")) == NULL) + xterm_prog = "xterm"; + +- if (openpty(&amaster, &aslave, slave_name, 0, 0) != 0 ++ if (openpty(&amaster, &aslave, slave_name, NULL, NULL) != 0 + || strlen(slave_name) > sizeof(slave_name) - 1) + failed("openpty"); +- if (strrchr(slave_name, '/') == 0) { ++ if (strrchr(slave_name, '/') == NULL) { + errno = EISDIR; + failed(slave_name); + } +@@ -176,7 +176,7 @@ + _exit(0); + } + fp = fdopen(amaster, "r+"); +- if (fp == 0) ++ if (fp == NULL) + failed(path); + #else + struct stat sb; +@@ -266,7 +266,7 @@ + target->output, + target->input); + +- if (target->screen == 0) ++ if (target->screen == NULL) + failed("newterm"); + + (void) USING_SCREEN(target->screen, init_screen, target); +@@ -429,7 +429,7 @@ + } + } + +- if ((data = typeCalloc(DITTO, (size_t) argc)) == 0) ++ if ((data = typeCalloc(DITTO, (size_t) argc)) == NULL) + failed("calloc data"); + + assert(data != 0); +@@ -478,7 +478,7 @@ + */ + for (j = argc - 1; j >= 0; j--) { + LockIt(); +- USING_SCREEN(data[j].screen, close_screen, 0); ++ USING_SCREEN(data[j].screen, close_screen, NULL); + fprintf(data[j].output, "**Closed\r\n"); + + /* +Index: test/dots.c +Prereq: 1.46 +--- ncurses-6.5-20241130+/test/dots.c 2024-10-06 21:17:54.000000000 +0000 ++++ ncurses-6.5-20241207/test/dots.c 2024-12-07 22:27:13.000000000 +0000 +@@ -30,7 +30,7 @@ + /* + * Author: Thomas E. Dickey <dickey@clark.net> 1999 + * +- * $Id: dots.c,v 1.46 2024/10/06 21:17:54 tom Exp $ ++ * $Id: dots.c,v 1.47 2024/12/07 22:27:13 tom Exp $ + * + * A simple demo of the terminfo interface. + */ +@@ -102,7 +102,7 @@ + get_number(NCURSES_CONST char *cap, int map) + { + int result = map; +- if (cap != 0) { ++ if (cap != NULL) { + int check = tigetnum(cap); + if (check > 0) + result = check; +@@ -191,12 +191,12 @@ + SetupAlarm(r_option); + InitAndCatch(setupterm((char *) 0, 1, (int *) 0), onsig); + +- srand((unsigned) time(0)); ++ srand((unsigned) time(NULL)); + + outs(clear_screen); + outs(cursor_invisible); + +-#define GetNumber(ln,sn) get_number(f_option ? #sn : 0, ln) ++#define GetNumber(ln,sn) get_number(f_option ? #sn : NULL, ln) + my_colors = GetNumber(max_colors, colors); + if (my_colors > 1) { + if (!VALID_STRING(set_a_foreground) +Index: test/dots_curses.c +Prereq: 1.26 +--- ncurses-6.5-20241130+/test/dots_curses.c 2024-11-30 17:48:07.000000000 +0000 ++++ ncurses-6.5-20241207/test/dots_curses.c 2024-12-07 22:32:11.000000000 +0000 +@@ -30,7 +30,7 @@ + /* + * Author: Thomas E. Dickey + * +- * $Id: dots_curses.c,v 1.26 2024/11/30 17:48:07 tom Exp $ ++ * $Id: dots_curses.c,v 1.27 2024/12/07 22:32:11 tom Exp $ + * + * A simple demo of the curses interface used for comparison with termcap. + */ +@@ -170,7 +170,7 @@ + } + } + +- srand((unsigned) time(0)); ++ srand((unsigned) time(NULL)); + + SetupAlarm(r_option); + InitAndCatch(initscr(), onsig); +Index: test/dots_mvcur.c +Prereq: 1.32 +--- ncurses-6.5-20241130+/test/dots_mvcur.c 2024-10-06 21:17:54.000000000 +0000 ++++ ncurses-6.5-20241207/test/dots_mvcur.c 2024-12-07 22:32:11.000000000 +0000 +@@ -30,7 +30,7 @@ + /* + * Author: Thomas E. Dickey - 2007 + * +- * $Id: dots_mvcur.c,v 1.32 2024/10/06 21:17:54 tom Exp $ ++ * $Id: dots_mvcur.c,v 1.33 2024/12/07 22:32:11 tom Exp $ + * + * A simple demo of the terminfo interface, and mvcur. + */ +@@ -103,7 +103,7 @@ + get_number(NCURSES_CONST char *cap, int map) + { + int result = map; +- if (cap != 0) { ++ if (cap != NULL) { + int check = tigetnum(cap); + if (check > 0) + result = check; +@@ -195,18 +195,18 @@ + InitAndCatch((sp = newterm((char *) 0, stdout, stdin)), onsig); + refresh(); /* needed with Solaris curses to cancel endwin */ + +- if (sp == 0) { ++ if (sp == NULL) { + fprintf(stderr, "Cannot initialize terminal\n"); + ExitProgram(EXIT_FAILURE); + } + +- srand((unsigned) time(0)); ++ srand((unsigned) time(NULL)); + + outs(clear_screen); + outs(cursor_home); + outs(cursor_invisible); + +-#define GetNumber(ln,sn) get_number(f_option ? #sn : 0, ln) ++#define GetNumber(ln,sn) get_number(f_option ? #sn : NULL, ln) + my_colors = GetNumber(max_colors, colors); + if (my_colors > 1) { + if (!VALID_STRING(set_a_foreground) +Index: test/dots_termcap.c +Prereq: 1.35 +--- ncurses-6.5-20241130+/test/dots_termcap.c 2024-10-06 21:18:35.000000000 +0000 ++++ ncurses-6.5-20241207/test/dots_termcap.c 2024-12-07 22:32:11.000000000 +0000 +@@ -30,7 +30,7 @@ + /* + * Author: Thomas E. Dickey + * +- * $Id: dots_termcap.c,v 1.35 2024/10/06 21:18:35 tom Exp $ ++ * $Id: dots_termcap.c,v 1.37 2024/12/07 22:32:11 tom Exp $ + * + * A simple demo of the termcap interface. + */ +@@ -153,7 +153,7 @@ + /* + * napms is a curses function which happens to be usable without initializing + * the screen, but if this program happened to be build with a "real" termcap +- * library, there is nothing like napms. ++ * library, there is nothing like napms. + */ + #if HAVE_NAPMS + #define my_napms(ms) napms(ms) +@@ -178,9 +178,9 @@ + get_number(NCURSES_CONST char *cap, const char *env) + { + int result = tgetnum(cap); +- const char *value = env ? getenv(env) : 0; +- if (value != 0 && *value != 0) { +- char *next = 0; ++ const char *value = env ? getenv(env) : NULL; ++ if (value != NULL && *value != 0) { ++ char *next = NULL; + long check = strtol(value, &next, 10); + if (check > 0 && *next == '\0') + result = (int) check; +@@ -263,12 +263,12 @@ + } + } + +- if ((name = getenv("TERM")) == 0) { ++ if ((name = getenv("TERM")) == NULL) { + fprintf(stderr, "TERM is not set\n"); + ExitProgram(EXIT_FAILURE); + } + +- srand((unsigned) time(0)); ++ srand((unsigned) time(NULL)); + + SetupAlarm((unsigned) r_option); + InitAndCatch(ch = tgetent(buffer, name), onsig); +@@ -285,7 +285,7 @@ + } + + num_colors = tgetnum("Co"); +-#define GetNumber(cap,env) get_number(cap, e_option ? env : 0) ++#define GetNumber(cap,env) get_number(cap, e_option ? env : NULL) + num_lines = GetNumber("li", "LINES"); + num_columns = GetNumber("co", "COLUMNS"); + +Index: test/dots_xcurses.c +Prereq: 1.31 +--- ncurses-6.5-20241130+/test/dots_xcurses.c 2024-11-30 17:41:18.000000000 +0000 ++++ ncurses-6.5-20241207/test/dots_xcurses.c 2024-12-07 22:32:11.000000000 +0000 +@@ -30,7 +30,7 @@ + /* + * Author: Thomas E. Dickey + * +- * $Id: dots_xcurses.c,v 1.31 2024/11/30 17:41:18 tom Exp $ ++ * $Id: dots_xcurses.c,v 1.32 2024/12/07 22:32:11 tom Exp $ + * + * A simple demo of the wide-curses interface used for comparison with termcap. + */ +@@ -202,7 +202,7 @@ + } + + setlocale(LC_ALL, ""); +- srand((unsigned) time(0)); ++ srand((unsigned) time(NULL)); + + SetupAlarm(r_option); + InitAndCatch(initscr(), onsig); +Index: test/dump_window.c +Prereq: 1.5 +--- ncurses-6.5-20241130+/test/dump_window.c 2023-11-11 00:30:50.000000000 +0000 ++++ ncurses-6.5-20241207/test/dump_window.c 2024-12-07 23:03:07.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2018-2020,2023 Thomas E. Dickey * ++ * Copyright 2018-2023,2024 Thomas E. Dickey * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * +@@ -26,7 +26,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: dump_window.c,v 1.5 2023/11/11 00:30:50 tom Exp $ ++ * $Id: dump_window.c,v 1.6 2024/12/07 23:03:07 tom Exp $ + */ + #include <dump_window.h> + +@@ -37,7 +37,7 @@ + { + int result = 0; + close_dump(); +- if ((dumpfp = fopen(fn, "a")) != 0) ++ if ((dumpfp = fopen(fn, "a")) != NULL) + result = 1; + return result; + } +@@ -45,9 +45,9 @@ + void + close_dump(void) + { +- if (dumpfp != 0) { ++ if (dumpfp != NULL) { + fclose(dumpfp); +- dumpfp = 0; ++ dumpfp = NULL; + } + } + +@@ -55,14 +55,14 @@ + dump_window(WINDOW *w) + { + wgetch(w); +- if (dumpfp != 0) { ++ if (dumpfp != NULL) { + int y, x; + int oldy, oldx; + int maxy, maxx; + int pass; +- char *cvec = 0; +- char *avec = 0; +- char *pvec = 0; ++ char *cvec = NULL; ++ char *avec = NULL; ++ char *pvec = NULL; + int ccnt = 0; + int acnt = 0; + int pcnt = 0; +Index: test/dup_field.c +Prereq: 1.11 +--- ncurses-6.5-20241130+/test/dup_field.c 2024-10-06 20:07:19.000000000 +0000 ++++ ncurses-6.5-20241207/test/dup_field.c 2024-12-07 22:32:11.000000000 +0000 +@@ -26,7 +26,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: dup_field.c,v 1.11 2024/10/06 20:07:19 tom Exp $ ++ * $Id: dup_field.c,v 1.12 2024/12/07 22:32:11 tom Exp $ + * + * Demonstrate dup_field(). + */ +@@ -91,7 +91,7 @@ + const char *code = keyname(commands[n].code); + size_t need = 5; + #ifdef NCURSES_VERSION +- if ((name = form_request_name(commands[n].result)) == 0) ++ if ((name = form_request_name(commands[n].result)) == NULL) + #endif + name = commands[n].help; + need = 5 + strlen(code) + strlen(name); +@@ -101,9 +101,9 @@ + } + msgs[used++] = + strdup("Arrow keys move within a field as you would expect."); +- msgs[used] = 0; ++ msgs[used] = NULL; + popup_msg2(stdscr, msgs); +- for (n = 0; msgs[n] != 0; ++n) { ++ for (n = 0; msgs[n] != NULL; ++n) { + free(msgs[n]); + } + free(msgs); +@@ -347,7 +347,7 @@ + + all_fields[n] = (FIELD *) 0; + +- if ((form = new_form(all_fields)) != 0) { ++ if ((form = new_form(all_fields)) != NULL) { + int finished = 0; + + post_form(form); +@@ -369,7 +369,7 @@ + + free_form(form); + } +- for (c = 0; all_fields[c] != 0; c++) { ++ for (c = 0; all_fields[c] != NULL; c++) { + free_edit_field(all_fields[c]); + free_field(all_fields[c]); + } +Index: test/echochar.c +Prereq: 1.26 +--- ncurses-6.5-20241130+/test/echochar.c 2023-05-27 20:13:10.000000000 +0000 ++++ ncurses-6.5-20241207/test/echochar.c 2024-12-07 23:03:07.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2019-2022,2023 Thomas E. Dickey * ++ * Copyright 2019-2023,2024 Thomas E. Dickey * + * Copyright 2006-2014,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: echochar.c,v 1.26 2023/05/27 20:13:10 tom Exp $ ++ * $Id: echochar.c,v 1.27 2024/12/07 23:03:07 tom Exp $ + * + * Demonstrate the echochar function (compare to dots.c). + * Thomas Dickey - 2006/11/4 +@@ -108,7 +108,7 @@ + double c; + bool use_colors; + bool opt_r = FALSE; +- char *my_pairs = 0; ++ char *my_pairs = NULL; + int last_fg = 0; + int last_bg = 0; + +@@ -134,10 +134,10 @@ + if (COLOR_PAIRS > 0) { + my_pairs = typeCalloc(char, (size_t) COLOR_PAIRS); + } +- use_colors = (my_pairs != 0); ++ use_colors = (my_pairs != NULL); + } + +- srand((unsigned) time(0)); ++ srand((unsigned) time(NULL)); + + curs_set(0); + +Index: test/edit_field.c +Prereq: 1.32 +--- ncurses-6.5-20241130+/test/edit_field.c 2024-06-29 17:49:56.000000000 +0000 ++++ ncurses-6.5-20241207/test/edit_field.c 2024-12-07 22:22:51.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: edit_field.c,v 1.32 2024/06/29 17:49:56 tom Exp $ ++ * $Id: edit_field.c,v 1.33 2024/12/07 22:22:51 tom Exp $ + * + * A wrapper for form_driver() which keeps track of the user's editing changes + * for each field, and makes the resulting length available as a +@@ -188,7 +188,7 @@ + const char *code = keyname(commands[n].code); + size_t need = 5; + #ifdef NCURSES_VERSION +- if ((name = form_request_name(commands[n].result)) == 0) ++ if ((name = form_request_name(commands[n].result)) == NULL) + #endif + name = commands[n].help; + need = 5 + strlen(code) + strlen(name); +@@ -198,9 +198,9 @@ + } + msgs[used++] = + strdup("Arrow keys move within a field as you would expect."); +- msgs[used] = 0; ++ msgs[used] = NULL; + popup_msg2(stdscr, msgs); +- for (n = 0; msgs[n] != 0; ++n) { ++ for (n = 0; msgs[n] != NULL; ++n) { + free(msgs[n]); + } + free(msgs); +@@ -249,7 +249,7 @@ + { + char empty[1]; + FieldAttrs *ptr = field_attrs(f); +- if (ptr == 0) { ++ if (ptr == NULL) { + int rows, cols, frow, fcol, nrow, nbuf; + + ptr = typeCalloc(FieldAttrs, (size_t) 1); +@@ -259,7 +259,7 @@ + ptr->row_lengths = typeCalloc(int, (size_t) nrow + 1); + } + } +- if (value == 0) { ++ if (value == NULL) { + value = empty; + *value = '\0'; + } +@@ -421,7 +421,7 @@ + free_edit_field(FIELD *f) + { + FieldAttrs *ptr = field_attrs(f); +- if (ptr != 0) { ++ if (ptr != NULL) { + free(ptr->row_lengths); + free(ptr); + } +Index: test/filter.c +Prereq: 1.40 +--- ncurses-6.5-20241130+/test/filter.c 2024-11-30 16:49:53.000000000 +0000 ++++ ncurses-6.5-20241207/test/filter.c 2024-12-07 22:40:19.000000000 +0000 +@@ -30,7 +30,7 @@ + /* + * Author: Thomas E. Dickey 1998 + * +- * $Id: filter.c,v 1.40 2024/11/30 16:49:53 tom Exp $ ++ * $Id: filter.c,v 1.41 2024/12/07 22:40:19 tom Exp $ + * + * An example of the 'filter()' function in ncurses, this program prompts + * for commands and executes them (like a command shell). It illustrates +@@ -264,12 +264,12 @@ + /* + * Cancel xterm's alternate-screen mode (from dialog -TD) + */ +-#define isprivate(s) ((s) != 0 && strstr(s, "\033[?") != 0) ++#define isprivate(s) ((s) != NULL && strstr(s, "\033[?") != NULL) + static void + cancel_altscreen(void) + { + if (isatty(fileno(stdout)) +- && key_mouse != 0 /* xterm and kindred */ ++ && key_mouse != NULL /* xterm and kindred */ + && isprivate(enter_ca_mode) + && isprivate(exit_ca_mode)) { + /* +@@ -292,8 +292,8 @@ + * implementation of alternate-screen in rxvt, etc., which clear more + * of the display than they should. + */ +- enter_ca_mode = 0; +- exit_ca_mode = 0; ++ enter_ca_mode = NULL; ++ exit_ca_mode = NULL; + } + } + #endif +@@ -380,7 +380,7 @@ + if (i_option) { + initscr(); + } else { +- if (newterm((char *) 0, stdout, stdin) == 0) { ++ if (newterm((char *) 0, stdout, stdin) == NULL) { + fprintf(stderr, "cannot initialize terminal\n"); + ExitProgram(EXIT_FAILURE); + } +Index: test/foldkeys.c +Prereq: 1.12 +--- ncurses-6.5-20241130+/test/foldkeys.c 2023-02-25 16:51:01.000000000 +0000 ++++ ncurses-6.5-20241207/test/foldkeys.c 2024-12-07 23:03:07.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2018-2022,2023 Thomas E. Dickey * ++ * Copyright 2018-2023,2024 Thomas E. Dickey * + * Copyright 2006-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -30,7 +30,7 @@ + /* + * Author: Thomas E. Dickey, 2006 + * +- * $Id: foldkeys.c,v 1.12 2023/02/25 16:51:01 tom Exp $ ++ * $Id: foldkeys.c,v 1.13 2024/12/07 23:03:07 tom Exp $ + * + * Demonstrate a method for altering key definitions at runtime. + * +@@ -55,7 +55,7 @@ + { + FILE *fp; + +- if ((fp = fopen(MY_LOGFILE, "a")) != 0) { ++ if ((fp = fopen(MY_LOGFILE, "a")) != NULL) { + char temp[256]; + int y, x, n; + int need = sizeof(temp) - 1; +@@ -112,7 +112,7 @@ + for (code = 0; code < STRCOUNT; ++code) { + NCURSES_CONST char *name = strnames[code]; + NCURSES_CONST char *value = tigetstr(name); +- if (value != 0 && value != (NCURSES_CONST char *) -1) { ++ if (value != NULL && value != (NCURSES_CONST char *) -1) { + info[info_len].name = strnames[code]; + info[info_len].code = key_defined(value); + info[info_len].value = value; +@@ -129,7 +129,7 @@ + */ + for (code = KEY_MAX; code < MAX_KEYS; ++code) { + NCURSES_CONST char *name = keyname(code); +- if (name != 0) { ++ if (name != NULL) { + info[info_len].name = name; + info[info_len].code = code; + info[info_len].value = tigetstr(name); +@@ -156,7 +156,7 @@ + final) == 3 + && *final != ';' + && (need = strlen(info[j].value)) != 0 +- && (value = strdup(info[j].value)) != 0) { ++ && (value = strdup(info[j].value)) != NULL) { + (void) need; /* _nc_SLIMIT is normally nothing */ + _nc_SPRINTF(value, _nc_SLIMIT(need) "\033[%d%c", first, *final); + for (k = 0; k < info_len; ++k) { +@@ -232,7 +232,7 @@ + if (optind < argc) + usage(FALSE); + +- if (newterm(0, stdout, stdin) == 0) { ++ if (newterm(NULL, stdout, stdin) == NULL) { + fprintf(stderr, "Cannot initialize terminal\n"); + ExitProgram(EXIT_FAILURE); + } +@@ -262,7 +262,7 @@ + printw("Keycode %d, name %s%s\n", + ch, + escaped ? "ESC-" : "", +- name != 0 ? name : "<null>"); ++ name != NULL ? name : "<null>"); + log_last_line(stdscr); + clrtoeol(); + if (ch == 'q') +Index: test/form_driver_w.c +Prereq: 1.18 +--- ncurses-6.5-20241130+/test/form_driver_w.c 2024-10-06 23:13:40.000000000 +0000 ++++ ncurses-6.5-20241207/test/form_driver_w.c 2024-12-07 22:32:11.000000000 +0000 +@@ -32,7 +32,7 @@ + ****************************************************************************/ + + /* +- * $Id: form_driver_w.c,v 1.18 2024/10/06 23:13:40 tom Exp $ ++ * $Id: form_driver_w.c,v 1.19 2024/12/07 22:32:11 tom Exp $ + * + * Test form_driver_w (int, int, wchar_t), a wide char aware + * replacement of form_driver. +@@ -74,7 +74,7 @@ + " ^D,^Q,ESC - quit program", + " <Tab>,<Down> - move to next field", + " <BackTab>,<Up> - move to previous field", +- 0 ++ NULL + }; + + #define NUM_FIELDS 3 +Index: test/gdc.c +Prereq: 1.63 +--- ncurses-6.5-20241130+/test/gdc.c 2024-11-30 18:56:02.000000000 +0000 ++++ ncurses-6.5-20241207/test/gdc.c 2024-12-07 22:32:11.000000000 +0000 +@@ -34,7 +34,7 @@ + * modified 10-18-89 for curses (jrl) + * 10-18-89 added signal handling + * +- * $Id: gdc.c,v 1.63 2024/11/30 18:56:02 tom Exp $ ++ * $Id: gdc.c,v 1.64 2024/12/07 22:32:11 tom Exp $ + */ + + #include <test.priv.h> +@@ -294,8 +294,8 @@ + InitAndCatch({ + if (redirected) { + NCURSES_CONST char *name = getenv("TERM"); +- if (name == 0 +- || newterm(name, ofp, ifp) == 0) { ++ if (name == NULL ++ || newterm(name, ofp, ifp) == NULL) { + fprintf(stderr, "cannot open terminal\n"); + ExitProgram(EXIT_FAILURE); + } +Index: test/inch_wide.c +Prereq: 1.14 +--- ncurses-6.5-20241130+/test/inch_wide.c 2024-10-06 23:14:31.000000000 +0000 ++++ ncurses-6.5-20241207/test/inch_wide.c 2024-12-07 22:32:11.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: inch_wide.c,v 1.14 2024/10/06 23:14:31 tom Exp $ ++ * $Id: inch_wide.c,v 1.15 2024/12/07 22:32:11 tom Exp $ + */ + /* + int in_wch(cchar_t *wcval); +@@ -70,11 +70,11 @@ + " h,j,k,l (and arrow-keys) - move viewport", + " w - recur to new window", + " for next input file", +- 0 ++ NULL + }; + +- WINDOW *txtbox = 0; +- WINDOW *txtwin = 0; ++ WINDOW *txtbox = NULL; ++ WINDOW *txtwin = NULL; + FILE *fp; + int j; + int txt_x = 0, txt_y = 0; +@@ -82,7 +82,7 @@ + cchar_t ch; + cchar_t text[MAX_COLS]; + +- if (argv[level] == 0) { ++ if (argv[level] == NULL) { + beep(); + return FALSE; + } +@@ -110,7 +110,7 @@ + txt_x = 0; + wmove(txtwin, txt_y, txt_x); + +- if ((fp = fopen(argv[level], "r")) != 0) { ++ if ((fp = fopen(argv[level], "r")) != NULL) { + while ((j = fgetc(fp)) != EOF) { + if (waddch(txtwin, UChar(j)) != OK) { + break; +@@ -155,7 +155,7 @@ + break; + case 'w': + test_inchs(level + 1, argv, chrwin, strwin); +- if (txtbox != 0) { ++ if (txtbox != NULL) { + touchwin(txtbox); + wnoutrefresh(txtbox); + } else { +Index: test/inchs.c +Prereq: 1.20 +--- ncurses-6.5-20241130+/test/inchs.c 2024-10-06 21:17:54.000000000 +0000 ++++ ncurses-6.5-20241207/test/inchs.c 2024-12-07 22:32:11.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: inchs.c,v 1.20 2024/10/06 21:17:54 tom Exp $ ++ * $Id: inchs.c,v 1.21 2024/12/07 22:32:11 tom Exp $ + * + * Author: Thomas E Dickey + */ +@@ -80,17 +80,17 @@ + " h,j,k,l (and arrow-keys) - move viewport", + " w - recur to new window", + " for next input file", +- 0 ++ NULL + }; +- WINDOW *txtbox = 0; +- WINDOW *txtwin = 0; ++ WINDOW *txtbox = NULL; ++ WINDOW *txtwin = NULL; + FILE *fp; + int ch, j; + int txt_x = 0, txt_y = 0; + int base_y; + chtype text[MAX_COLS]; + +- if (argv[level] == 0) { ++ if (argv[level] == NULL) { + beep(); + return FALSE; + } +@@ -109,7 +109,7 @@ + txtwin = stdscr; + base_y = BASE_Y; + } +- if (txtwin == 0) ++ if (txtwin == NULL) + failed("cannot create txtwin"); + + keypad(txtwin, TRUE); /* enable keyboard mapping */ +@@ -120,7 +120,7 @@ + txt_x = 0; + wmove(txtwin, txt_y, txt_x); + +- if ((fp = fopen(argv[level], "r")) != 0) { ++ if ((fp = fopen(argv[level], "r")) != NULL) { + while ((j = fgetc(fp)) != EOF) { + if (waddch(txtwin, UChar(j)) != OK) { + break; +@@ -165,7 +165,7 @@ + break; + case 'w': + test_inchs(level + 1, argv, chrwin, strwin); +- if (txtbox != 0) { ++ if (txtbox != NULL) { + touchwin(txtbox); + wnoutrefresh(txtbox); + } else { +Index: test/ins_wide.c +Prereq: 1.31 +--- ncurses-6.5-20241130+/test/ins_wide.c 2024-10-05 19:26:24.000000000 +0000 ++++ ncurses-6.5-20241207/test/ins_wide.c 2024-12-07 22:32:11.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: ins_wide.c,v 1.31 2024/10/05 19:26:24 tom Exp $ ++ * $Id: ins_wide.c,v 1.32 2024/12/07 22:32:11 tom Exp $ + * + * Demonstrate the wins_wstr() and wins_wch functions. + * Thomas Dickey - 2002/11/23 +@@ -225,9 +225,9 @@ + int row2, col2; + int length; + wchar_t buffer[BUFSIZ]; +- WINDOW *look = 0; +- WINDOW *work = 0; +- WINDOW *show = 0; ++ WINDOW *look = NULL; ++ WINDOW *work = NULL; ++ WINDOW *show = NULL; + int margin = (2 * MY_TABSIZE) - 1; + Options option = (Options) ((int) (m_opt ? oMove : oDefault) + | (int) ((w_opt || (level > 0)) +Index: test/insdelln.c +Prereq: 1.17 +--- ncurses-6.5-20241130+/test/insdelln.c 2024-10-06 21:08:52.000000000 +0000 ++++ ncurses-6.5-20241207/test/insdelln.c 2024-12-07 22:32:11.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: insdelln.c,v 1.17 2024/10/06 21:08:52 tom Exp $ ++ * $Id: insdelln.c,v 1.18 2024/12/07 22:32:11 tom Exp $ + * + * test-driver for deleteln, wdeleteln, insdelln, winsdelln, insertln, winsertln + */ +@@ -71,7 +71,7 @@ + }; + /* *INDENT-ON* */ + +- const char *result = 0; ++ const char *result = NULL; + + if (has_colors()) { + static bool first = TRUE; +@@ -107,7 +107,7 @@ + }; + /* *INDENT-ON* */ + +- const char *result = 0; ++ const char *result = NULL; + + if (state < SIZEOF(table)) { + *attr = table[state].attr; +@@ -144,9 +144,9 @@ + getyx(win, y, x); + wmove(win, 0, 0); + wprintw(win, "Count %d", sp->count); +- if (sp->v_msg != 0) ++ if (sp->v_msg != NULL) + wprintw(win, " Video %s", sp->v_msg); +- if (sp->c_msg != 0) ++ if (sp->c_msg != NULL) + wprintw(win, " Color %s", sp->c_msg); + wclrtoeol(win); + wmove(win, y, x); +@@ -165,10 +165,10 @@ + WINDOW *win1 = newwin(sp->y_max - 2, sp->x_max - 2, + sp->y_beg + 1, sp->x_beg + 1); + +- if (win1 != 0 && sp->y_max > 4 && sp->x_max > 4) { ++ if (win1 != NULL && sp->y_max > 4 && sp->x_max > 4) { + WINDOW *win2 = derwin(win1, sp->y_max - 4, sp->x_max - 4, 1, 1); + +- if (win2 != 0) { ++ if (win2 != NULL) { + box(win1, 0, 0); + wrefresh(win1); + func(win2); +@@ -222,7 +222,7 @@ + ,"q quit" + ,"= resets count to zero." + ,"? shows this help-window" +- ,0 ++ ,NULL + }; + + popup_msg(win, table); +@@ -234,14 +234,14 @@ + switch (sp->ch) { + case ' ': /* next test-iteration */ + if (has_colors()) { +- if ((sp->c_msg = color_params(++(sp->c), &(sp->pair))) == 0) { ++ if ((sp->c_msg = color_params(++(sp->c), &(sp->pair))) == NULL) { + sp->c_msg = color_params(sp->c = 0, &(sp->pair)); +- if ((sp->v_msg = video_params(++(sp->v), &(sp->attr))) == 0) { ++ if ((sp->v_msg = video_params(++(sp->v), &(sp->attr))) == NULL) { + sp->v_msg = video_params(sp->v = 0, &(sp->attr)); + } + } + } else { +- if ((sp->v_msg = video_params(++(sp->v), &(sp->attr))) == 0) { ++ if ((sp->v_msg = video_params(++(sp->v), &(sp->attr))) == NULL) { + sp->v_msg = video_params(sp->v = 0, &(sp->attr)); + } + } +Index: test/inserts.c +Prereq: 1.35 +--- ncurses-6.5-20241130+/test/inserts.c 2024-10-05 19:26:24.000000000 +0000 ++++ ncurses-6.5-20241207/test/inserts.c 2024-12-07 22:33:32.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: inserts.c,v 1.35 2024/10/05 19:26:24 tom Exp $ ++ * $Id: inserts.c,v 1.36 2024/12/07 22:33:32 tom Exp $ + * + * Demonstrate the winsstr() and winsch functions. + * Thomas Dickey - 2002/10/19 +@@ -147,9 +147,9 @@ + int row2, col2; + int length; + char buffer[BUFSIZ]; +- WINDOW *look = 0; +- WINDOW *work = 0; +- WINDOW *show = 0; ++ WINDOW *look = NULL; ++ WINDOW *work = NULL; ++ WINDOW *show = NULL; + int margin = (2 * MY_TABSIZE) - 1; + Options option = (Options) ((unsigned) (m_opt + ? oMove +Index: test/key_names.c +Prereq: 1.11 +--- ncurses-6.5-20241130+/test/key_names.c 2022-12-04 00:40:11.000000000 +0000 ++++ ncurses-6.5-20241207/test/key_names.c 2024-12-07 23:00:37.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020,2022 Thomas E. Dickey * ++ * Copyright 2020-2022,2024 Thomas E. Dickey * + * Copyright 2007-2014,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: key_names.c,v 1.11 2022/12/04 00:40:11 tom Exp $ ++ * $Id: key_names.c,v 1.12 2024/12/07 23:00:37 tom Exp $ + */ + + #include <test.priv.h> +@@ -100,7 +100,7 @@ + for (n = -1; n < KEY_MAX + 512; n++) { + int check = wcwidth((wchar_t) n); + const char *result = check >= 0 ? key_name((wchar_t) n) : "?"; +- if (result != 0) ++ if (result != NULL) + printf("%d(%5o):%s\n", n, n, result); + } + ExitProgram(EXIT_SUCCESS); +Index: test/keynames.c +Prereq: 1.13 +--- ncurses-6.5-20241130+/test/keynames.c 2022-12-04 00:40:11.000000000 +0000 ++++ ncurses-6.5-20241207/test/keynames.c 2024-12-07 23:00:37.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020,2022 Thomas E. Dickey * ++ * Copyright 2020-2022,2024 Thomas E. Dickey * + * Copyright 1998-2006,2008 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: keynames.c,v 1.13 2022/12/04 00:40:11 tom Exp $ ++ * $Id: keynames.c,v 1.14 2024/12/07 23:00:37 tom Exp $ + */ + + #include <test.priv.h> +@@ -97,7 +97,7 @@ + + for (n = -1; n < KEY_MAX + 512; n++) { + const char *result = keyname(n); +- if (result != 0) ++ if (result != NULL) + printf("%d(%5o):%s\n", n, n, result); + } + ExitProgram(EXIT_SUCCESS); +Index: test/linedata.h +Prereq: 1.8 +--- ncurses-6.5-20241130+/test/linedata.h 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.5-20241207/test/linedata.h 2024-12-07 23:00:37.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2018,2020 Thomas E. Dickey * ++ * Copyright 2018-2020,2024 Thomas E. Dickey * + * Copyright 2009-2010,2012 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -28,7 +28,7 @@ + ****************************************************************************/ + + /* +- * $Id: linedata.h,v 1.8 2020/02/02 23:34:34 tom Exp $ ++ * $Id: linedata.h,v 1.9 2024/12/07 23:00:37 tom Exp $ + * + * Utility functions for reading a line of text from a file. + */ +@@ -55,7 +55,7 @@ + static void + init_linedata(const char *name) + { +- if ((linedata = fopen(name, "r")) == 0) { ++ if ((linedata = fopen(name, "r")) == NULL) { + failed(name); + } + } +@@ -64,11 +64,11 @@ + read_linedata(WINDOW *work) + { + int result; +- if (linedata != 0) { ++ if (linedata != NULL) { + result = fgetc(linedata); + if (result == EOF) { + fclose(linedata); +- linedata = 0; ++ linedata = NULL; + result = read_linedata(work); + } else { + wrefresh(work); +Index: test/list_keys.c +Prereq: 1.36 +--- ncurses-6.5-20241130+/test/list_keys.c 2024-11-30 18:07:01.000000000 +0000 ++++ ncurses-6.5-20241207/test/list_keys.c 2024-12-07 22:33:32.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: list_keys.c,v 1.36 2024/11/30 18:07:01 tom Exp $ ++ * $Id: list_keys.c,v 1.37 2024/12/07 22:33:32 tom Exp $ + * + * Author: Thomas E Dickey + * +@@ -86,7 +86,7 @@ + { + const char *result = name; + int n; +- for (n = 0; strnames[n] != 0; ++n) { ++ for (n = 0; strnames[n] != NULL; ++n) { + if (!strcmp(name, strnames[n])) { + result = strfnames[n]; + break; +@@ -104,7 +104,7 @@ + if (show && t_opt) + fputc('"', stdout); + +- if (value != 0 && value != (char *) -1) { ++ if (value != NULL && value != (char *) -1) { + while (*value != 0) { + char buffer[10]; + int ch = UChar(*value++); +@@ -356,7 +356,7 @@ + if (widths2 < check) + widths2 = check; + } +- for (j = 0; Name(j) != 0; ++j) { ++ for (j = 0; Name(j) != NULL; ++j) { + if (valid_key(Name(j), terms, count)) { + const char *label = f_opt ? full_name(Name(j)) : Name(j); + check = (int) strlen(label); +@@ -399,7 +399,7 @@ + + widthsx = widths0 + ((count + 1) * widths2); + +- for (j = 0; Name(j) != 0; ++j) { ++ for (j = 0; Name(j) != NULL; ++j) { + if (j == 0 || (Type(j) != Type(j - 1))) + draw_line(widthsx); + if (valid_key(Name(j), terms, count)) { +@@ -498,7 +498,7 @@ + int n; + for (n = optind; n < argc; ++n) { + setupterm((NCURSES_CONST char *) argv[n], 1, &status); +- if (status > 0 && cur_term != 0) { ++ if (status > 0 && cur_term != NULL) { + terms[found++] = cur_term; + } + } +Index: test/move_field.c +Prereq: 1.19 +--- ncurses-6.5-20241130+/test/move_field.c 2024-10-06 21:12:35.000000000 +0000 ++++ ncurses-6.5-20241207/test/move_field.c 2024-12-07 22:33:32.000000000 +0000 +@@ -26,7 +26,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: move_field.c,v 1.19 2024/10/06 21:12:35 tom Exp $ ++ * $Id: move_field.c,v 1.20 2024/12/07 22:33:32 tom Exp $ + * + * Demonstrate move_field(). + */ +@@ -91,7 +91,7 @@ + const char *code = keyname(commands[n].code); + size_t need = 5; + #ifdef NCURSES_VERSION +- if ((name = form_request_name(commands[n].result)) == 0) ++ if ((name = form_request_name(commands[n].result)) == NULL) + #endif + name = commands[n].help; + need = 5 + strlen(code) + strlen(name); +@@ -101,9 +101,9 @@ + } + msgs[used++] = + strdup("Arrow keys move within a field as you would expect."); +- msgs[used] = 0; ++ msgs[used] = NULL; + popup_msg2(stdscr, msgs); +- for (n = 0; msgs[n] != 0; ++n) { ++ for (n = 0; msgs[n] != NULL; ++n) { + free(msgs[n]); + } + free(msgs); +@@ -444,7 +444,7 @@ + + all_fields[n] = (FIELD *) 0; + +- if ((form = new_form(all_fields)) != 0) { ++ if ((form = new_form(all_fields)) != NULL) { + int finished = 0; + + post_form(form); +@@ -466,7 +466,7 @@ + + free_form(form); + } +- for (c = 0; all_fields[c] != 0; c++) { ++ for (c = 0; all_fields[c] != NULL; c++) { + free_edit_field(all_fields[c]); + free_field(all_fields[c]); + } +Index: test/movewindow.c +Prereq: 1.56 +--- ncurses-6.5-20241130+/test/movewindow.c 2024-10-06 18:44:26.000000000 +0000 ++++ ncurses-6.5-20241207/test/movewindow.c 2024-12-07 22:33:32.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: movewindow.c,v 1.56 2024/10/06 18:44:26 tom Exp $ ++ * $Id: movewindow.c,v 1.57 2024/12/07 22:33:32 tom Exp $ + * + * Demonstrate move functions for windows and derived windows from the curses + * library. +@@ -149,7 +149,7 @@ + res.y = uli; + res.x = ulj; + +- if (child != 0) { ++ if (child != NULL) { + if (relative) { + getparyx(child, i, j); + } else { +@@ -256,20 +256,20 @@ + bool result = FALSE; + + head_line("Use arrows to move cursor, anything else to mark corner 1"); +- if ((tmp = selectcell(parent, 0, ++ if ((tmp = selectcell(parent, NULL, + min_line, min_col, + max_line, max_col, + FALSE, +- (bool *) 0)) != 0) { ++ (bool *) 0)) != NULL) { + *ul = *tmp; + MvWAddCh(parent, ul->y, ul->x, '*'); + + head_line("Use arrows to move cursor, anything else to mark corner 2"); +- if ((tmp = selectcell(parent, 0, ++ if ((tmp = selectcell(parent, NULL, + ul->y, ul->x, + max_line, max_col, + FALSE, +- (bool *) 0)) != 0) { ++ (bool *) 0)) != NULL) { + *lr = *tmp; + MvWAddCh(parent, lr->y, lr->x, '*'); + wmove(parent, lr->y, lr->x); +@@ -348,7 +348,7 @@ + static WINDOW * + parent_of(NCURSES_CONST WINDOW *win) + { +- WINDOW *result = 0; ++ WINDOW *result = NULL; + int n = window2num(win); + if (n >= 0) + result = all_windows[n].parent; +@@ -429,7 +429,7 @@ + WINDOW *parent = parent_of(win); + bool result = FALSE; + +- if (parent != 0) { ++ if (parent != NULL) { + bool top = (parent == stdscr); + int min_col = top ? COL_MIN : 0; + int max_col = top ? COL_MAX : getmaxx(parent); +@@ -445,7 +445,7 @@ + min_line, min_col, + max_line, max_col, + FALSE, +- &more)) != 0) { ++ &more)) != NULL) { + int y0, x0; + getbegyx(parent, y0, x0); + /* +@@ -494,7 +494,7 @@ + WINDOW *parent = parent_of(win); + bool result = FALSE; + +- if (parent != 0) { ++ if (parent != NULL) { + bool top = (parent == stdscr); + int min_col = top ? COL_MIN : 0; + int max_col = top ? COL_MAX : getmaxx(parent); +@@ -509,7 +509,7 @@ + min_line, min_col, + max_line, max_col, + TRUE, +- &more)) != 0) { ++ &more)) != NULL) { + if (mvderwin(win, tmp->y, tmp->x) != ERR) { + refresh_all(win); + doupdate(); +@@ -577,16 +577,16 @@ + create_my_window(WINDOW *current) + { + PAIR ul, lr; +- WINDOW *result = 0; ++ WINDOW *result = NULL; + + if (getwindow(stdscr, &ul, &lr)) { + result = newwin(lines_of(ul, lr), cols_of(ul, lr), pair_of(ul)); +- if (result != 0) { ++ if (result != NULL) { + fill_window(result, 'c'); + add_window(stdscr, result); + } + } +- if (result == 0) ++ if (result == NULL) + result = current; + return result; + } +@@ -595,16 +595,16 @@ + create_my_derwin(WINDOW *parent) + { + PAIR ul, lr; +- WINDOW *result = 0; ++ WINDOW *result = NULL; + + if (getwindow(parent, &ul, &lr)) { + result = derwin(parent, lines_of(ul, lr), cols_of(ul, lr), pair_of(ul)); +- if (result != 0) { ++ if (result != NULL) { + fill_window(result, 'd'); + add_window(parent, result); + } + } +- if (result == 0) ++ if (result == NULL) + result = parent; + return result; + } +@@ -613,7 +613,7 @@ + create_my_subwin(WINDOW *parent) + { + PAIR ul, lr; +- WINDOW *result = 0; ++ WINDOW *result = NULL; + + if (getwindow(parent, &ul, &lr)) { + result = subwin(parent, +@@ -621,12 +621,12 @@ + cols_of(ul, lr), + ul.y + getbegy(parent), + ul.x + getbegx(parent)); +- if (result != 0) { ++ if (result != NULL) { + fill_window(result, 's'); + add_window(parent, result); + } + } +- if (result == 0) ++ if (result == NULL) + result = parent; + return result; + } +@@ -718,7 +718,7 @@ + nonl(); + intrflush(stdscr, FALSE); + +- add_window(0, current_win = stdscr); ++ add_window(NULL, current_win = stdscr); + + #ifdef NCURSES_MOUSE_VERSION + (void) mousemask(BUTTON1_CLICKED, (mmask_t *) NULL); +Index: test/ncurses.c +Prereq: 1.544 +--- ncurses-6.5-20241130+/test/ncurses.c 2024-11-30 18:54:06.000000000 +0000 ++++ ncurses-6.5-20241207/test/ncurses.c 2024-12-07 23:22:39.000000000 +0000 +@@ -41,7 +41,7 @@ + Author: Eric S. Raymond <esr@snark.thyrsus.com> 1993 + Thomas E. Dickey (beginning revision 1.27 in 1996). + +-$Id: ncurses.c,v 1.544 2024/11/30 18:54:06 tom Exp $ ++$Id: ncurses.c,v 1.545 2024/12/07 23:22:39 tom Exp $ + + ***************************************************************************/ + +@@ -121,23 +121,23 @@ + #endif + + #if HAVE_WCSRTOMBS +-#define count_wchars(src, len, state) wcsrtombs(0, &src, len, state) +-#define trans_wchars(dst, src, len, state) wcsrtombs(dst, &src, len, state) ++#define count_wchars(src, len, state) wcsrtombs(NULL, &src, len, state) ++#define trans_wchars(dst, src, len, state) wcsrtombs(dst, &src, len, state) + #define reset_wchars(state) init_mb(state) + #elif HAVE_WCSTOMBS && HAVE_MBTOWC && HAVE_MBLEN +-#define count_wchars(src, len, state) wcstombs(0, src, len) +-#define trans_wchars(dst, src, len, state) wcstombs(dst, src, len) ++#define count_wchars(src, len, state) wcstombs(NULL, src, len) ++#define trans_wchars(dst, src, len, state) wcstombs(dst, src, len) + #define reset_wchars(state) IGNORE_RC(mblen(NULL, 0)), IGNORE_RC(mbtowc(NULL, NULL, 0)) + #define state_unused + #endif + + #if HAVE_MBSRTOWCS +-#define count_mbytes(src, len, state) mbsrtowcs(0, &src, len, state) +-#define trans_mbytes(dst, src, len, state) mbsrtowcs(dst, &src, len, state) ++#define count_mbytes(src, len, state) mbsrtowcs(NULL, &src, len, state) ++#define trans_mbytes(dst, src, len, state) mbsrtowcs(dst, &src, len, state) + #define reset_mbytes(state) init_mb(state) + #elif HAVE_MBSTOWCS && HAVE_MBTOWC && HAVE_MBLEN +-#define count_mbytes(src, len, state) mbstowcs(0, src, len) +-#define trans_mbytes(dst, src, len, state) mbstowcs(dst, src, len) ++#define count_mbytes(src, len, state) mbstowcs(NULL, src, len) ++#define trans_mbytes(dst, src, len, state) mbstowcs(dst, src, len) + #define reset_mbytes(state) IGNORE_RC(mblen(NULL, 0)), IGNORE_RC(mbtowc(NULL, NULL, 0)) + #define state_unused + #endif +@@ -328,7 +328,7 @@ + + source[0] = fullwidth_digit(digit + '0'); + source[1] = 0; +- setcchar(target, source, A_NORMAL, 0, 0); ++ setcchar(target, source, A_NORMAL, 0, NULL); + } + #endif + +@@ -683,7 +683,7 @@ + const char *msg = help[n]; + int row = 1 + (int) (n % chk); + int col = (n >= chk) ? COLS / 2 : 0; +- int flg = ((strstr(msg, "toggle") != 0) ++ int flg = ((strstr(msg, "toggle") != NULL) + && (flags[UChar(*msg)] != FALSE)); + if (*msg == '^' && ExitOnEscape()) + msg = "^[,^q -- quit"; +@@ -717,16 +717,16 @@ + WINDOW *frame; + } WINSTACK; + +-static WINSTACK *winstack = 0; ++static WINSTACK *winstack = NULL; + static unsigned len_winstack = 0; + + static void + forget_boxes(void) + { +- if (winstack != 0) { ++ if (winstack != NULL) { + free(winstack); + } +- winstack = 0; ++ winstack = NULL; + len_winstack = 0; + } + +@@ -737,7 +737,7 @@ + + assert(level < (unsigned) COLS); + +- if (winstack == 0) { ++ if (winstack == NULL) { + len_winstack = 20; + winstack = typeMalloc(WINSTACK, len_winstack); + } else if (need >= len_winstack) { +@@ -1030,7 +1030,7 @@ + high -= 2; + wide -= 2; + werase(winstack[n].text); +- box_set(winstack[n].frame, 0, 0); ++ box_set(winstack[n].frame, NULL, NULL); + wnoutrefresh(winstack[n].frame); + wprintw(winstack[n].text, + "size %dx%d\n", +@@ -1048,7 +1048,7 @@ + wcstos(const wchar_t *src) + { + int need; +- char *result = 0; ++ char *result = NULL; + const wchar_t *tmp = src; + #ifndef state_unused + mbstate_t state; +@@ -1057,11 +1057,11 @@ + reset_wchars(state); + if ((need = (int) count_wchars(tmp, 0, &state)) > 0) { + unsigned have = (unsigned) need; +- if ((result = typeCalloc(char, have + 1)) != 0) { ++ if ((result = typeCalloc(char, have + 1)) != NULL) { + tmp = src; + if (trans_wchars(result, tmp, have, &state) != have) { + free(result); +- result = 0; ++ result = NULL; + } + } else { + failed("wcstos"); +@@ -1124,7 +1124,7 @@ + for (n = 0; (wchar_buf[n] = (wchar_t) wint_buf[n]) != 0; ++n) { + ; + } +- if ((temp = wcstos(wchar_buf)) != 0) { ++ if ((temp = wcstos(wchar_buf)) != NULL) { + wprintw(win, "I saw %d characters:\n\t`%s'.", + (int) wcslen(wchar_buf), temp); + free(temp); +@@ -1161,7 +1161,7 @@ + WINDOW *wb = newwin(high, wide, new_y, new_x); + WINDOW *wi = newwin(high - 2, wide - 2, new_y + 1, new_x + 1); + +- box_set(wb, 0, 0); ++ box_set(wb, NULL, NULL); + wrefresh(wb); + wmove(wi, 0, 0); + remember_boxes(level, wi, wb); +@@ -1614,7 +1614,7 @@ + Repaint(); + break; + case HELP_KEY_1: +- if ((helpwin = newwin(LINES - 1, COLS - 2, 0, 0)) != 0) { ++ if ((helpwin = newwin(LINES - 1, COLS - 2, 0, 0)) != NULL) { + box(helpwin, 0, 0); + attr_legend(helpwin); + wGetchar(helpwin); +@@ -1837,7 +1837,7 @@ + + blank[0] = ' '; + blank[1] = 0; +- setcchar(&normal, blank, A_NORMAL, pair, 0); ++ setcchar(&normal, blank, A_NORMAL, pair, NULL); + bkgrnd(&normal); + bkgrndset(&normal); + } +@@ -1854,7 +1854,7 @@ + if (getbkgrnd(&ch) != ERR) { + wchar_t wch[CCHARW_MAX]; + +- if (getcchar(&ch, wch, &attr, &pair, 0) != ERR) { ++ if (getcchar(&ch, wch, &attr, &pair, NULL) != ERR) { + result = attr; + } + } +@@ -1895,17 +1895,17 @@ + wchar_t fill[2]; + fill[0] = *s; + fill[1] = L'\0'; +- setcchar(&ch, fill, attr, pair, 0); ++ setcchar(&ch, fill, attr, pair, NULL); + (void) wadd_wch(win, &ch); + } + } else { + attr_t old_attr = 0; + NCURSES_PAIRS_T old_pair = 0; + +- (void) (wattr_get) (win, &old_attr, &old_pair, 0); +- (void) wattr_set(win, attr, pair, 0); ++ (void) (wattr_get) (win, &old_attr, &old_pair, NULL); ++ (void) wattr_set(win, attr, pair, NULL); + (void) waddwstr(win, wide_attr_test_string); +- (void) wattr_set(win, old_attr, old_pair, 0); ++ (void) wattr_set(win, old_attr, old_pair, NULL); + } + if (skip) + printw("%*s", skip, " "); +@@ -1969,8 +1969,8 @@ + Repaint(); + break; + case HELP_KEY_1: +- if ((helpwin = newwin(LINES - 1, COLS - 2, 0, 0)) != 0) { +- box_set(helpwin, 0, 0); ++ if ((helpwin = newwin(LINES - 1, COLS - 2, 0, 0)) != NULL) { ++ box_set(helpwin, NULL, NULL); + attr_legend(helpwin); + wGetchar(helpwin); + delwin(helpwin); +@@ -2074,7 +2074,7 @@ + set_wide_background(pair); + erase(); + +- box_set(stdscr, 0, 0); ++ box_set(stdscr, NULL, NULL); + MvAddStr(0, 20, "Character attribute test display"); + + for (j = 0; j < my_size; ++j) { +@@ -2258,7 +2258,7 @@ + int col_limit; + int row_limit; + int per_row; +- char *numbered = 0; ++ char *numbered = NULL; + const char *hello; + bool done = FALSE; + bool opt_acsc = FALSE; +@@ -2275,7 +2275,7 @@ + } + + numbered = typeCalloc(char, COLS + 1); +- done = ((COLS < 16) || (numbered == 0)); ++ done = ((COLS < 16) || (numbered == NULL)); + + /* + * Because the number of colors is usually a power of two, we also use +@@ -2481,7 +2481,7 @@ + } + break; + case HELP_KEY_1: +- if ((helpwin = newwin(LINES - 1, COLS - 2, 0, 0)) != 0) { ++ if ((helpwin = newwin(LINES - 1, COLS - 2, 0, 0)) != NULL) { + box(helpwin, 0, 0); + color_legend(helpwin, FALSE); + wGetchar(helpwin); +@@ -2527,7 +2527,7 @@ + int col_limit; + int row_limit; + int per_row; +- char *numbered = 0; ++ char *numbered = NULL; + const char *hello; + bool done = FALSE; + bool opt_acsc = FALSE; +@@ -2537,7 +2537,7 @@ + bool opt_nums = FALSE; + bool opt_xchr = FALSE; + int opt_zoom = 0; +- wchar_t *buffer = 0; ++ wchar_t *buffer = NULL; + WINDOW *helpwin; + + if (!UseColors) { +@@ -2546,7 +2546,7 @@ + } + numbered = typeCalloc(char, COLS + 1); + buffer = typeCalloc(wchar_t, COLS + 1); +- done = ((COLS < 16) || (numbered == 0) || (buffer == 0)); ++ done = ((COLS < 16) || (numbered == NULL) || (buffer == NULL)); + + /* + * Because the number of colors is usually a power of two, we also use +@@ -2765,7 +2765,7 @@ + } + break; + case HELP_KEY_1: +- if ((helpwin = newwin(LINES - 1, COLS - 2, 0, 0)) != 0) { ++ if ((helpwin = newwin(LINES - 1, COLS - 2, 0, 0)) != NULL) { + box(helpwin, 0, 0); + color_legend(helpwin, TRUE); + wGetchar(helpwin); +@@ -2875,14 +2875,14 @@ + } + reset_prog_mode(); + } +- if (palette_file != 0) { ++ if (palette_file != NULL) { + FILE *fp = fopen(palette_file, "r"); +- if (fp != 0) { ++ if (fp != NULL) { + char buffer[BUFSIZ]; + int red, green, blue; + int scale = 1000; + int c; +- while (fgets(buffer, sizeof(buffer), fp) != 0) { ++ while (fgets(buffer, sizeof(buffer), fp) != NULL) { + if (sscanf(buffer, "scale:%d", &c) == 1) { + scale = c; + if (scale < 100) +@@ -3387,7 +3387,7 @@ + case '8': + MvAddStr(SLK_WORK, 0, "Please enter the label value: "); + _nc_STRCPY(buf, "", sizeof(buf)); +- if ((s = slk_label(c - '0')) != 0) { ++ if ((s = slk_label(c - '0')) != NULL) { + _nc_STRNCPY(buf, s, (size_t) 8); + } + wGetstring(stdscr, buf, 8); +@@ -3508,7 +3508,7 @@ + case '8': + MvAddStr(SLK_WORK, 0, "Please enter the label value: "); + *buf = 0; +- if ((s = slk_label(c - '0')) != 0) { ++ if ((s = slk_label(c - '0')) != NULL) { + char *temp = strdup(s); + size_t used = strlen(temp); + size_t want = SLKLEN; +@@ -3821,7 +3821,7 @@ + int c = 'a'; + int pagesize = 32; + char *term = getenv("TERM"); +- const char *pch_kludge = ((term != 0 && strstr(term, "linux")) ++ const char *pch_kludge = ((term != NULL && strstr(term, "linux")) + ? "p=PC, " + : ""); + attr_t attr = A_NORMAL; +@@ -3831,7 +3831,7 @@ + int bg = COLOR_BLACK; + unsigned at_code = 0; + NCURSES_PAIRS_T pair = 0; +- void (*last_show_acs) (int, attr_t, NCURSES_PAIRS_T) = 0; ++ void (*last_show_acs) (int, attr_t, NCURSES_PAIRS_T) = NULL; + ATTR_TBL my_list[SIZEOF(attrs_to_test)]; + unsigned my_size = init_attr_list(my_list, termattrs()); + +@@ -3864,12 +3864,12 @@ + case '2': + case '3': + digit = (c - '0'); +- last_show_acs = 0; ++ last_show_acs = NULL; + break; + case '-': + if (digit > 0) { + --digit; +- last_show_acs = 0; ++ last_show_acs = NULL; + } else { + beep(); + } +@@ -3877,7 +3877,7 @@ + case '+': + if (digit < 3) { + ++digit; +- last_show_acs = 0; ++ last_show_acs = NULL; + } else { + beep(); + } +@@ -3901,7 +3901,7 @@ + } + if (pagesize != 32) { + show_256_chars(repeat, attr, pair); +- } else if (last_show_acs != 0) { ++ } else if (last_show_acs != NULL) { + last_show_acs(repeat, attr, pair); + } else { + show_upper_chars(digit * pagesize + 128, pagesize, repeat, attr, pair); +@@ -3941,8 +3941,8 @@ + TEST_CCHAR(src, { + attr |= (test_attrs & A_ALTCHARSET); + setcchar(dst, test_wch, attr, pair, NULL); +- }, { +- ; ++ } ++ , {; + }); + } while (0); + return dst; +@@ -3981,7 +3981,7 @@ + + memset(&codes, 0, sizeof(codes)); + codes[0] = code; +- setcchar(&temp, codes, attr, pair, 0); ++ setcchar(&temp, codes, attr, pair, NULL); + move(row, col); + if (wcwidth(code) == 0 && code != 0) { + AddCh((chtype) space | +@@ -4020,7 +4020,7 @@ + + memset(&codes, 0, sizeof(codes)); + codes[0] = code; +- setcchar(&temp, codes, attr, pair, 0); ++ setcchar(&temp, codes, attr, pair, NULL); + + do { + int y, x; +@@ -4298,10 +4298,10 @@ + char temp[80]; + + MvPrintw(row, col, "%*s : ", COLS / 4, name); +- (void) attr_set(attr, pair, 0); ++ (void) attr_set(attr, pair, NULL); + _nc_STRNCPY(temp, code, 20); + addstr(temp); +- (void) attr_set(A_NORMAL, 0, 0); ++ (void) attr_set(A_NORMAL, 0, NULL); + return n + 1; + } + +@@ -4373,7 +4373,7 @@ + int bg = COLOR_BLACK; + unsigned at_code = 0; + NCURSES_PAIRS_T pair = 0; +- void (*last_show_wacs) (int, attr_t, NCURSES_PAIRS_T) = 0; ++ void (*last_show_wacs) (int, attr_t, NCURSES_PAIRS_T) = NULL; + W_ATTR_TBL my_list[SIZEOF(w_attrs_to_test)]; + unsigned my_size = init_w_attr_list(my_list, term_attrs()); + char at_page[20]; +@@ -4436,26 +4436,26 @@ + at_page[--len] = '\0'; + } else if (c < 256 && isdigit(c)) { + digit = (unsigned) (c - '0'); +- last_show_wacs = 0; ++ last_show_wacs = NULL; + } else if (c == '+') { + ++digit; + _nc_SPRINTF(at_page, _nc_SLIMIT(sizeof(at_page)) "%02x", digit); +- last_show_wacs = 0; ++ last_show_wacs = NULL; + } else if (c == '-' && digit > 0) { + --digit; + _nc_SPRINTF(at_page, _nc_SLIMIT(sizeof(at_page)) "%02x", + UChar(digit)); +- last_show_wacs = 0; ++ last_show_wacs = NULL; + } else if (c == '>' && repeat < (COLS / 4)) { + ++repeat; + } else if (c == '<' && repeat > 1) { + --repeat; + } else if (c == '_') { + space = (space == ' ') ? '_' : ' '; +- last_show_wacs = 0; ++ last_show_wacs = NULL; + } else if (cycle_w_attr(c, &at_code, &attr, my_list, my_size) + || cycle_colors(c, &fg, &bg, &pair)) { +- if (last_show_wacs != 0) ++ if (last_show_wacs != NULL) + break; + } else { + beep(); +@@ -4465,7 +4465,7 @@ + } + if (pagesize != 32) { + show_paged_widechars(digit, pagesize, repeat, space, attr, pair); +- } else if (last_show_wacs != 0) { ++ } else if (last_show_wacs != NULL) { + last_show_wacs(repeat, attr, pair); + } else { + show_upper_widechars(digit * 32 + 128, repeat, space, attr, pair); +@@ -4615,7 +4615,7 @@ + static WINDOW * + frame_win(FRAME * curp) + { +- return (curp != 0) ? curp->wind : stdscr; ++ return (curp != NULL) ? curp->wind : stdscr; + } + + /* We need to know if these flags are actually set, so don't look in FRAME. +@@ -4834,7 +4834,7 @@ + outerbox(ul, lr, TRUE); + refresh(); + +- if (rwindow != 0) ++ if (rwindow != NULL) + wrefresh(rwindow); + + move(0, 0); +@@ -4865,9 +4865,9 @@ + static FRAME * + delete_framed(FRAME * fp, bool showit) + { +- FRAME *np = 0; ++ FRAME *np = NULL; + +- if (fp != 0) { ++ if (fp != NULL) { + fp->last->next = fp->next; + fp->next->last = fp->last; + +@@ -4905,7 +4905,7 @@ + transient((FRAME *) 0, (char *) 0); + switch (c) { + case CTRL('C'): +- if ((neww = typeCalloc(FRAME, (size_t) 1)) == 0) { ++ if ((neww = typeCalloc(FRAME, (size_t) 1)) == NULL) { + failed("scroll_test"); + goto breakout; + } +@@ -4915,7 +4915,7 @@ + goto breakout; + } + +- if (current == 0) { /* First element, */ ++ if (current == NULL) { /* First element, */ + neww->next = neww; /* so point it at itself */ + neww->last = neww; + } else { +@@ -4970,7 +4970,7 @@ + + #if HAVE_PUTWIN && HAVE_GETWIN + case CTRL('W'): /* save and delete window */ +- if ((current != 0) && (current == current->next)) { ++ if ((current != NULL) && (current == current->next)) { + transient(current, "Will not save/delete ONLY window"); + break; + } else if ((fp = fopen(DUMPFILE, "w")) == (FILE *) 0) { +@@ -4991,13 +4991,13 @@ + if ((fp = fopen(DUMPFILE, "r")) == (FILE *) 0) { + transient(current, "Can't open screen dump file"); + } else { +- if ((neww = typeCalloc(FRAME, (size_t) 1)) != 0) { ++ if ((neww = typeCalloc(FRAME, (size_t) 1)) != NULL) { + +- neww->next = current ? current->next : 0; ++ neww->next = current ? current->next : NULL; + neww->last = current; +- if (neww->last != 0) ++ if (neww->last != NULL) + neww->last->next = neww; +- if (neww->next != 0) ++ if (neww->next != NULL) + neww->next->last = neww; + + neww->wind = getwin(fp); +@@ -5119,7 +5119,7 @@ + && (c != ERR)); + + breakout: +- while (current != 0) ++ while (current != NULL) + current = delete_framed(current, FALSE); + + scrollok(stdscr, TRUE); /* reset to driver's default */ +@@ -5180,7 +5180,7 @@ + { + wmove(stdscr, LINES - 1, 0); + wclrtoeol(stdscr); +- if (text != 0 && *text != '\0') { ++ if (text != NULL && *text != '\0') { + waddstr(stdscr, text); + waddstr(stdscr, "; "); + } +@@ -5194,10 +5194,10 @@ + mkpanel(NCURSES_COLOR_T color, int rows, int cols, int tly, int tlx) + { + WINDOW *win; +- PANEL *pan = 0; ++ PANEL *pan = NULL; + +- if ((win = newwin(rows, cols, tly, tlx)) != 0) { +- if ((pan = new_panel(win)) == 0) { ++ if ((win = newwin(rows, cols, tly, tlx)) != NULL) { ++ if ((pan = new_panel(win)) == NULL) { + delwin(win); + } else if (UseColors) { + NCURSES_COLOR_T fg = (NCURSES_COLOR_T) ((color == COLOR_BLUE) +@@ -5337,7 +5337,8 @@ + } + + static int +-demo_panels(void (*InitPanel) (WINDOW *), void (*FillPanel) (NCURSES_CONST PANEL *)) ++demo_panels(void (*InitPanel) (WINDOW *), ++ void (*FillPanel) (NCURSES_CONST PANEL *)) + { + int count; + int itmp; +@@ -5927,7 +5928,7 @@ + { + WINDOW *panpad = newpad(PAD_HIGH, PAD_WIDE); + +- if (panpad == 0) { ++ if (panpad == NULL) { + Cannot("cannot create requested pad"); + return ERR; + } +@@ -5990,7 +5991,7 @@ + getbegyx(win, by, bx); + sw = w / 3; + sh = h / 3; +- if ((subWin = subwin(win, sh, sw, by + h - sh - 2, bx + w - sw - 2)) == 0) ++ if ((subWin = subwin(win, sh, sw, by + h - sh - 2, bx + w - sw - 2)) == NULL) + return ERR; + + #ifdef A_COLOR +@@ -6138,7 +6139,7 @@ + refresh(); + + for (ap = animals; *ap; ap++) { +- if ((*ip = new_item(*ap, "")) != 0) ++ if ((*ip = new_item(*ap, "")) != NULL) + ++ip; + } + *ip = (ITEM *) 0; +@@ -6216,8 +6217,8 @@ + static size_t need = 12; + int n; + +- if (buf == 0) { +- for (n = 0; t_tbl[n].name != 0; n++) ++ if (buf == NULL) { ++ for (n = 0; t_tbl[n].name != NULL; n++) + need += strlen(t_tbl[n].name) + 2; + buf = typeMalloc(char, need); + if (!buf) +@@ -6228,7 +6229,7 @@ + _nc_STRCAT(buf, t_tbl[0].name ? t_tbl[0].name : "", need); + _nc_STRCAT(buf, ", ", need); + } else { +- for (n = 1; t_tbl[n].name != 0; n++) ++ for (n = 1; t_tbl[n].name != NULL; n++) + if ((tlevel & t_tbl[n].mask) == t_tbl[n].mask) { + _nc_STRCAT(buf, t_tbl[n].name, need); + _nc_STRCAT(buf, ", ", need); +@@ -6260,14 +6261,14 @@ + i = current_item(m); + if (i == items[0]) { + if (item_value(i)) { +- for (p = items + 1; *p != 0; p++) ++ for (p = items + 1; *p != NULL; p++) + if (item_value(*p)) { + set_item_value(*p, FALSE); + changed = TRUE; + } + } + } else { +- for (p = items + 1; *p != 0; p++) ++ for (p = items + 1; *p != NULL; p++) + if (item_value(*p)) { + set_item_value(items[0], FALSE); + changed = TRUE; +@@ -6300,8 +6301,8 @@ + + refresh(); + +- for (n = 0; t_tbl[n].name != 0; n++) { +- if ((*ip = new_item(t_tbl[n].name, "")) != 0) { ++ for (n = 0; t_tbl[n].name != NULL; n++) { ++ if ((*ip = new_item(t_tbl[n].name, "")) != NULL) { + ++ip; + } + } +@@ -6431,7 +6432,7 @@ + size_t need = 80 + have; + char *temp = malloc(need); + +- if (temp != 0) { ++ if (temp != NULL) { + size_t len; + _nc_STRNCPY(temp, source ? source : "", have + 1); + len = (size_t) (char *) field_userptr(me); +@@ -6735,7 +6736,7 @@ + set_field_type(f[n - 1], fty_passwd); + f[n] = (FIELD *) 0; + +- if ((form = new_form(f)) != 0) { ++ if ((form = new_form(f)) != NULL) { + WINDOW *w; + int finished = 0; + +@@ -6764,7 +6765,7 @@ + + free_form(form); + } +- for (c = 0; f[c] != 0; c++) ++ for (c = 0; f[c] != NULL; c++) + free_field(f[c]); + free_fieldtype(fty_middle); + free_fieldtype(fty_passwd); +@@ -6798,7 +6799,7 @@ + getmaxyx(stdscr, y, x); + if (y < 23 || x < 80) { + Cannot("The screen is too small for this test"); +- result = 0; ++ result = NULL; + } else { + int ymax = y - (overlap_HEAD + overlap_FOOT); + int high = ymax / 5; /* equal-sized parts for cross */ +@@ -7206,9 +7207,9 @@ + int shift = 0, last_refresh = -1; + int state, flavor[OVERLAP_FLAVORS]; + +- if ((win1 = make_overlap(0)) == 0) { ++ if ((win1 = make_overlap(0)) == NULL) { + return ERR; +- } else if ((win2 = make_overlap(1)) == 0) { ++ } else if ((win2 = make_overlap(1)) == NULL) { + delwin(win1); + return ERR; + } +@@ -7406,9 +7407,9 @@ + int shift = 0, last_refresh = -1; + int state, flavor[OVERLAP_FLAVORS]; + +- if ((win1 = make_overlap(0)) == 0) { ++ if ((win1 = make_overlap(0)) == NULL) { + return ERR; +- } else if ((win2 = make_overlap(1)) == 0) { ++ } else if ((win2 = make_overlap(1)) == NULL) { + delwin(win1); + return ERR; + } +@@ -7902,7 +7903,7 @@ + bool monochrome = FALSE; + #if HAVE_COLOR_CONTENT + bool xterm_colors = FALSE; +- NCURSES_CONST char *palette_file = 0; ++ NCURSES_CONST char *palette_file = NULL; + #endif + + setlocale(LC_ALL, ""); +@@ -7972,7 +7973,7 @@ + #endif + #ifdef TRACE + case 'D': +- save_trace = (unsigned) strtol(optarg, 0, 0); ++ save_trace = (unsigned) strtol(optarg, NULL, 0); + break; + #endif + #if HAVE_COLOR_CONTENT +Index: test/padview.c +Prereq: 1.26 +--- ncurses-6.5-20241130+/test/padview.c 2024-11-30 18:14:46.000000000 +0000 ++++ ncurses-6.5-20241207/test/padview.c 2024-12-07 22:40:19.000000000 +0000 +@@ -29,7 +29,7 @@ + /* + * clone of view.c, using pads + * +- * $Id: padview.c,v 1.26 2024/11/30 18:14:46 tom Exp $ ++ * $Id: padview.c,v 1.27 2024/12/07 22:40:19 tom Exp $ + */ + + #include <test.priv.h> +@@ -124,7 +124,7 @@ + size_t len; + struct stat sb; + char *my_blob; +- char **my_vec = 0; ++ char **my_vec = NULL; + WINDOW *my_pad; + + if (stat(filename, &sb) != 0 +@@ -136,11 +136,11 @@ + failed("input is empty"); + } + +- if ((fp = fopen(filename, "r")) == 0) { ++ if ((fp = fopen(filename, "r")) == NULL) { + failed("cannot open input-file"); + } + +- if ((my_blob = malloc((size_t) sb.st_size + 1)) == 0) { ++ if ((my_blob = malloc((size_t) sb.st_size + 1)) == NULL) { + failed("cannot allocate memory for input-file"); + } + +@@ -171,7 +171,7 @@ + } + num_lines = k; + if (pass == 0) { +- if (((my_vec = typeCalloc(char *, (size_t) k + 2)) == 0)) { ++ if (((my_vec = typeCalloc(char *, (size_t) k + 2)) == NULL)) { + failed("cannot allocate line-vector #1"); + } + } else { +@@ -199,7 +199,7 @@ + } + width = (width + 1) * 5; + my_pad = newpad(height, width); +- if (my_pad == 0) ++ if (my_pad == NULL) + failed("cannot allocate pad workspace"); + if (try_color) { + wattrset(my_pad, COLOR_PAIR(my_pair)); +@@ -301,7 +301,7 @@ + " s - use entered count for halfdelay() parameter", + " - if no entered count, stop nodelay()", + " <space> - begin nodelay()", +- 0 ++ NULL + }; + + int ch; +@@ -337,9 +337,9 @@ + #ifdef TRACE + case 'D': + { +- char *next = 0; ++ char *next = NULL; + int tvalue = (int) strtol(optarg, &next, 0); +- if (tvalue < 0 || (next != 0 && *next != 0)) ++ if (tvalue < 0 || (next != NULL && *next != 0)) + usage(FALSE); + curses_trace((unsigned) tvalue); + } +Index: test/pair_content.c +Prereq: 1.24 +--- ncurses-6.5-20241130+/test/pair_content.c 2024-11-30 18:31:01.000000000 +0000 ++++ ncurses-6.5-20241207/test/pair_content.c 2024-12-07 22:45:15.000000000 +0000 +@@ -26,7 +26,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: pair_content.c,v 1.24 2024/11/30 18:31:01 tom Exp $ ++ * $Id: pair_content.c,v 1.25 2024/12/07 22:45:15 tom Exp $ + */ + + #define NEED_TIME_H +@@ -181,7 +181,7 @@ + my_color_t fg; + my_color_t bg; + if (PairContent(pair, &fg, &bg) == OK) { +- if (expected != 0) { ++ if (expected != NULL) { + if (fg != expected[pair].fg) + success = FALSE; + if (bg != expected[pair].bg) +Index: test/picsmap.c +Prereq: 1.152 +--- ncurses-6.5-20241130+/test/picsmap.c 2024-11-30 21:39:57.000000000 +0000 ++++ ncurses-6.5-20241207/test/picsmap.c 2024-12-07 22:48:03.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: picsmap.c,v 1.152 2024/11/30 21:39:57 tom Exp $ ++ * $Id: picsmap.c,v 1.153 2024/12/07 22:48:03 tom Exp $ + * + * Author: Thomas E. Dickey + * +@@ -109,7 +109,7 @@ + static void warning(const char *fmt, ...) GCC_PRINTFLIKE(1, 2); + static int gather_c_values(int); + +-static FILE *logfp = 0; ++static FILE *logfp = NULL; + static double aspect_ratio = 0.6; + static bool in_curses = FALSE; + static bool debugging = FALSE; +@@ -138,7 +138,7 @@ + static void + logmsg(const char *fmt, ...) + { +- if (logfp != 0) { ++ if (logfp != NULL) { + va_list ap; + va_start(ap, fmt); + vfprintf(logfp, fmt, ap); +@@ -151,7 +151,7 @@ + static void + logmsg2(const char *fmt, ...) + { +- if (logfp != 0) { ++ if (logfp != NULL) { + va_list ap; + va_start(ap, fmt); + vfprintf(logfp, fmt, ap); +@@ -163,7 +163,7 @@ + static void + close_log(void) + { +- if (logfp != 0) { ++ if (logfp != NULL) { + logmsg("Allocations:"); + logmsg("%8ld file", (long) how_much.file); + logmsg("%8ld name", (long) how_much.name); +@@ -174,7 +174,7 @@ + logmsg("%8ld cell", (long) how_much.cell); + logmsg("%8ld window", LINES * COLS * (long) sizeof(NCURSES_CH_T)); + fclose(logfp); +- logfp = 0; ++ logfp = NULL; + } + } + +@@ -199,7 +199,7 @@ + static void + warning(const char *fmt, ...) + { +- if (logfp != 0) { ++ if (logfp != NULL) { + va_list ap; + va_start(ap, fmt); + vfprintf(logfp, fmt, ap); +@@ -219,7 +219,7 @@ + static void + free_data(char **data) + { +- if (data != 0) { ++ if (data != NULL) { + free(data[0]); + free(data); + } +@@ -228,12 +228,12 @@ + static PICS_HEAD * + free_pics_head(PICS_HEAD * pics) + { +- if (pics != 0) { ++ if (pics != NULL) { + free(pics->fgcol); + free(pics->cells); + free(pics->name); + free(pics); +- pics = 0; ++ pics = NULL; + } + return pics; + } +@@ -305,14 +305,14 @@ + reading_ncols[next].count = 0; + + check_c_values(__LINE__); +- if ((ft = tfind(I2P(next), &reading_ntree, compare_c_values)) != 0) { ++ if ((ft = tfind(I2P(next), &reading_ntree, compare_c_values)) != NULL) { + found = P2I(*ft); + } else { + if (reading_last + 2 >= reading_size) { + int more = ((MAX(reading_last, reading_size) + 2) * 3) / 2; + int last = reading_last + 1; + FG_NODE *p = typeRealloc(FG_NODE, more, reading_ncols); +- if (p == 0) ++ if (p == NULL) + goto done; + + reading_size = more; +@@ -323,7 +323,7 @@ + } + ++reading_last; + how_much.pair += sizeof(FG_NODE); +- if ((ft = tsearch(I2P(next), &reading_ntree, compare_c_values)) != 0) { ++ if ((ft = tsearch(I2P(next), &reading_ntree, compare_c_values)) != NULL) { + found = P2I(*ft); + if (found != next) + logmsg("OOPS expected slot %d, got %d", next, found); +@@ -370,24 +370,24 @@ + + reading_last = 0; + reading_size = 0; +- reading_ncols = 0; ++ reading_ncols = NULL; + } + + static void + dispose_c_values(void) + { + #if HAVE_TSEARCH +- if (reading_ntree != 0) { ++ if (reading_ntree != NULL) { + int n; + for (n = 0; n < reading_last; ++n) { + tdelete(I2P(n), &reading_ntree, compare_c_values); + } +- reading_ntree = 0; ++ reading_ntree = NULL; + } + #endif +- if (reading_ncols != 0) { ++ if (reading_ncols != NULL) { + free(reading_ncols); +- reading_ncols = 0; ++ reading_ncols = NULL; + } + reading_last = 0; + reading_size = 0; +@@ -413,7 +413,7 @@ + static char ** + read_file(const char *filename) + { +- char **result = 0; ++ char **result = NULL; + struct stat sb; + + if (!quiet) { +@@ -430,9 +430,9 @@ + result = typeCalloc(char *, size + 1); + how_much.file += ((size + 1) * 2); + +- if (blob != 0 && result != 0) { ++ if (blob != NULL && result != NULL) { + FILE *fp = fopen(filename, "r"); +- if (fp != 0) { ++ if (fp != NULL) { + logmsg("opened %s", filename); + + if (fread(blob, sizeof(char), size, fp) == size) { +@@ -457,7 +457,7 @@ + result[k++] = blob + j; + } + } +- result[k] = 0; ++ result[k] = NULL; + if (k && !binary) { + debugmsg2("[%5d] %s\n", k, result[k - 1]); + } +@@ -471,7 +471,7 @@ + debugmsg("...file is empty"); + free(blob); + free(result); +- result = 0; ++ result = NULL; + } else if (binary) { + debugmsg("...file is non-text"); + } +@@ -548,20 +548,20 @@ + read_palette(const char *filename) + { + static const char *data_dir = DATA_DIR; +- char **result = 0; ++ char **result = NULL; + size_t last = strlen(filename); + size_t need = (strlen(data_dir) + 20 + last); + char *full_name = malloc(need); + char *s; + struct stat sb; + +- if (full_name != 0) { ++ if (full_name != NULL) { + int tries; + for (tries = 0; tries < 8; ++tries) { + + *(s = full_name) = '\0'; + if (tries & 1) { +- if (strchr(filename, '/') == 0) { ++ if (strchr(filename, '/') == NULL) { + _nc_SPRINTF(full_name, _nc_SLIMIT(need) "%s/", data_dir); + } else { + continue; +@@ -582,7 +582,7 @@ + if (*t == '-') { + if (sscanf(t, "-%d%c", &num, &chr) == 2 && + chr == 'c' && +- (tc = strchr(t, chr)) != 0 && ++ (tc = strchr(t, chr)) != NULL && + !(strncmp) (tc, "color", 5)) { + found = 1; + } +@@ -622,7 +622,7 @@ + static void + init_palette(const char *palette_file) + { +- if (palette_file != 0) { ++ if (palette_file != NULL) { + char **data = read_palette(palette_file); + + all_colors = typeMalloc(RGB_DATA, (unsigned) COLORS); +@@ -641,12 +641,12 @@ + #else + memset(all_colors, 0, sizeof(RGB_DATA) * (size_t) COLORS); + #endif +- if (data != 0) { ++ if (data != NULL) { + int n; + int red, green, blue; + int scale = MaxSCALE; + int c; +- for (n = 0; data[n] != 0; ++n) { ++ for (n = 0; data[n] != NULL; ++n) { + if (sscanf(data[n], "scale:%d", &c) == 1) { + scale = c; + } else if (sscanf(data[n], "%d:%d %d %d", +@@ -677,9 +677,9 @@ + } + + if ((power2 != COLORS) || ((shift % 3) != 0)) { +- if (all_colors == 0) { ++ if (all_colors == NULL) { + init_palette(getenv("TERM")); +- if (all_colors == 0) { ++ if (all_colors == NULL) { + giveup("With %d colors, you need a palette-file", COLORS); + } + } +@@ -704,7 +704,7 @@ + int green = (value & 0x00ff00) >> 8; + int blue = (value & 0x0000ff) >> 0; + +- if (all_colors != 0) { ++ if (all_colors != NULL) { + #define Diff2(n,m) ((m) - all_colors[n].m) * ((m) - all_colors[n].m) + #define Diff2S(n) Diff2(n,red) + Diff2(n,green) + Diff2(n,blue) + int d2 = Diff2S(0); +@@ -823,7 +823,7 @@ + limit = -1; + ip = va_arg(ap, int *); + lv = strtol(source, &cp, ch == 'd' ? 10 : 16); +- if (cp != 0 && cp != source) { ++ if (cp != NULL && cp != source) { + *ip = (int) lv; + source = cp; + } else { +@@ -834,13 +834,13 @@ + /* floating point for pixels... */ + fp = va_arg(ap, float *); + lv = strtol(source, &cp, 10); +- if (cp == 0 || cp == source) ++ if (cp == NULL || cp == source) + goto finish; + *fp = (float) lv; + source = cp; + if (*source == '.') { + lv = strtol(++source, &cp, 10); +- if (cp == 0 || cp == source) ++ if (cp == NULL || cp == source) + goto finish; + { + float scale = 1.0f; +@@ -907,7 +907,7 @@ + s += cpp; + while (*s++ == '\t') { + char *t; +- for (t = arg2; (*s != '\0') && strchr("\t\"", *s) == 0;) { ++ for (t = arg2; (*s != '\0') && strchr("\t\"", *s) == NULL;) { + if (*s == ' ') { + s = skip_cs(s); + break; +@@ -915,7 +915,7 @@ + *t++ = *s++; + *t = '\0'; + } +- for (t = arg3; (*s != '\0') && strchr("\t\"", *s) == 0;) { ++ for (t = arg3; (*s != '\0') && strchr("\t\"", *s) == NULL;) { + *t++ = *s++; + *t = '\0'; + } +@@ -938,14 +938,14 @@ + char *s, *t; + size_t item = 0; + size_t need; +- RGB_NAME *result = 0; ++ RGB_NAME *result = NULL; + +- for (need = 0; data[need] != 0; ++need) ; ++ for (need = 0; data[need] != NULL; ++need) ; + + result = typeCalloc(RGB_NAME, need + 2); + how_much.name += (sizeof(RGB_NAME) * (need + 2)); + +- for (n = 0; data[n] != 0; ++n) { ++ for (n = 0; data[n] != NULL; ++n) { + if (strlen(t = data[n]) >= sizeof(buf) - 1) + continue; + t = strcpy(buf, t); +@@ -993,10 +993,10 @@ + static RGB_NAME * + lookup_rgb(const char *name) + { +- RGB_NAME *result = 0; +- if (rgb_table != 0) { ++ RGB_NAME *result = NULL; ++ if (rgb_table != NULL) { + int n; +- for (n = 0; rgb_table[n].name != 0; ++n) { ++ for (n = 0; rgb_table[n].name != NULL; ++n) { + if (!CaselessCmp(name, rgb_table[n].name)) { + result = &rgb_table[n]; + break; +@@ -1029,7 +1029,7 @@ + gather_c_values(0); + gather_c_values(0xffffff); + +- for (n = 0; data[n] != 0; ++n) { ++ for (n = 0; data[n] != NULL; ++n) { + if (strlen(s = data[n]) >= sizeof(buf) - 1) + continue; + switch (state) { +@@ -1037,10 +1037,10 @@ + case 1: + case 2: + if (sscanf(s, "#define %1024s %d%c", buf, &num, &ch) >= 2) { +- if ((t = strstr(buf, "_width")) != 0) { ++ if ((t = strstr(buf, "_width")) != NULL) { + state |= 1; + result->wide = (short) bytes_of(num); +- } else if ((t = strstr(buf, "_height")) != 0) { ++ } else if ((t = strstr(buf, "_height")) != NULL) { + state |= 2; + result->high = (short) num; + } else { +@@ -1067,7 +1067,7 @@ + result->cells = typeCalloc(PICS_CELL, cells); + how_much.cell += (sizeof(PICS_CELL) * cells); + +- if ((s = strchr(s, L_CURLY)) == 0) ++ if ((s = strchr(s, L_CURLY)) == NULL) + break; + ++s; + } else { +@@ -1147,14 +1147,14 @@ + char arg1[BUFSIZ]; + char arg2[BUFSIZ]; + char arg3[BUFSIZ]; +- char **list = 0; ++ char **list = NULL; + + debugmsg("called parse_xpm"); + + result = typeCalloc(PICS_HEAD, 1); + how_much.head += sizeof(PICS_HEAD); + +- for (n = 0; data[n] != 0; ++n) { ++ for (n = 0; data[n] != NULL; ++n) { + if (strlen(s = data[n]) >= sizeof(buf) - 1) + continue; + s = strcpy(buf, s); +@@ -1201,7 +1201,7 @@ + num_colors++; + free(list[reading_last]); + list[reading_last] = strdup(arg1); +- if ((by_name = lookup_rgb(arg3)) != 0) { ++ if ((by_name = lookup_rgb(arg3)) != NULL) { + found = gather_c_values(by_name->value); + } else if (*arg3 == '#') { + char *rgb = arg3 + 1; +@@ -1227,7 +1227,7 @@ + if (num_colors >= result->colors) { + finish_c_values(result); + state = 4; +- if (list[0] == 0) ++ if (list[0] == NULL) + list[0] = strdup("\033"); + } + break; +@@ -1239,7 +1239,7 @@ + + /* FIXME - factor out */ + for (c = 0; c < result->colors; ++c) { +- if (list[c] == 0) { ++ if (list[c] == NULL) { + /* should not happen... */ + continue; + } +@@ -1314,8 +1314,8 @@ + result = typeCalloc(PICS_HEAD, 1); + how_much.head += sizeof(PICS_HEAD); + +- if ((pp = popen(cmd, "r")) != 0) { +- if (fgets(buffer, sizeof(buffer), pp) != 0) { ++ if ((pp = popen(cmd, "r")) != NULL) { ++ if (fgets(buffer, sizeof(buffer), pp) != NULL) { + size_t n = strlen(filename); + debugmsg2("...read %s", buffer); + if (strlen(buffer) > n && +@@ -1341,12 +1341,12 @@ + _nc_STRCAT(cmd, " 2>/dev/null", need); + + logmsg("...opening pipe to %s", cmd); +- if ((pp = popen(cmd, "r")) != 0) { ++ if ((pp = popen(cmd, "r")) != NULL) { + int count = 0; + int col = 0; + int row = 0; + int len = 0; +- while (fgets(buffer, sizeof(buffer), pp) != 0) { ++ while (fgets(buffer, sizeof(buffer), pp) != NULL) { + debugmsg2("[%5d] %s", count + 1, buffer); + if (strlen(buffer) > 160) { /* 80 columns would be enough */ + okay = FALSE; +@@ -1380,7 +1380,7 @@ + const char *t = s; + bool matched = FALSE; + +- if (s != 0) { ++ if (s != NULL) { + /* after the "#RGB", there are differences - just ignore */ + while (*s != '\0' && !isspace(UChar(*s))) + ++s; +@@ -1472,11 +1472,11 @@ + read_picture(const char *filename, char **data) + { + PICS_HEAD *pics; +- if ((pics = parse_xbm(data)) == 0) { ++ if ((pics = parse_xbm(data)) == NULL) { + dispose_c_values(); +- if ((pics = parse_xpm(data)) == 0) { ++ if ((pics = parse_xpm(data)) == NULL) { + dispose_c_values(); +- if ((pics = parse_img(filename)) == 0) { ++ if ((pics = parse_img(filename)) == NULL) { + dispose_c_values(); + free_data(data); + warning("unexpected file-format for \"%s\"", filename); +@@ -1638,7 +1638,7 @@ + int total; + char buffer[256]; + +- if (logfp == 0) ++ if (logfp == NULL) + return; + + qsort(pics->fgcol, (size_t) pics->colors, sizeof(FG_NODE), compare_fg_counts); +@@ -1729,7 +1729,7 @@ + int ch; + int opt_d = FALSE; + char ignore_ch; +- const char *palette_path = 0; ++ const char *palette_path = NULL; + const char *rgb_path = RGB_PATH; + + while ((ch = getopt(argc, argv, OPTS_COMMON "a:dLF:p:qr:s:x:")) != -1) { +@@ -1751,7 +1751,7 @@ + debugging = TRUE; + break; + case 'F': +- if ((logfp = fopen(optarg, "a")) == 0) ++ if ((logfp = fopen(optarg, "a")) == NULL) + failed(optarg); + break; + case 'p': +@@ -1810,11 +1810,11 @@ + PICS_HEAD *pics; + char **data = read_file(argv[n]); + +- if (data == 0) { ++ if (data == NULL) { + warning("cannot read \"%s\"", argv[n]); + continue; + } +- if ((pics = read_picture(argv[n], data)) != 0) { ++ if ((pics = read_picture(argv[n], data)) != NULL) { + if (in_curses) { + show_picture(pics); + } else { +Index: test/popup_msg.c +Prereq: 1.14 +--- ncurses-6.5-20241130+/test/popup_msg.c 2024-10-26 19:28:11.000000000 +0000 ++++ ncurses-6.5-20241207/test/popup_msg.c 2024-12-07 22:22:51.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: popup_msg.c,v 1.14 2024/10/26 19:28:11 Stas.Sergeev Exp $ ++ * $Id: popup_msg.c,v 1.15 2024/12/07 22:22:51 tom Exp $ + * + * Show a multi-line message in a window which may extend beyond the screen. + * +@@ -78,16 +78,16 @@ + int last_y; + int ch = ERR; + +- for (n = 0; msg[n] != 0; ++n) { ++ for (n = 0; msg[n] != NULL; ++n) { + int check = (int) strlen(msg[n]); + if (width < check) + width = check; + } + length = n; + +- if ((help = newwin(high, wide, y0, x0)) == 0) ++ if ((help = newwin(high, wide, y0, x0)) == NULL) + return; +- if ((data = newpad(length + 2, width + 1)) == 0) { ++ if ((data = newpad(length + 2, width + 1)) == NULL) { + delwin(help); + return; + } +Index: test/railroad.c +Prereq: 1.27 +--- ncurses-6.5-20241130+/test/railroad.c 2024-10-05 19:26:24.000000000 +0000 ++++ ncurses-6.5-20241207/test/railroad.c 2024-12-07 22:48:03.000000000 +0000 +@@ -30,7 +30,7 @@ + /* + * Author: Thomas E. Dickey - 2000 + * +- * $Id: railroad.c,v 1.27 2024/10/05 19:26:24 tom Exp $ ++ * $Id: railroad.c,v 1.28 2024/12/07 22:48:03 tom Exp $ + * + * A simple demo of the termcap interface. + */ +@@ -83,13 +83,13 @@ + static void + Backup(void) + { +- tputs(backup != 0 ? backup : "\b", 1, outc); ++ tputs(backup != NULL ? backup : "\b", 1, outc); + } + + static void + MyShowCursor(int flag) + { +- if (startC != 0 && finisC != 0) { ++ if (startC != NULL && finisC != NULL) { + tputs(flag ? startC : finisC, 1, outc); + } + } +@@ -97,7 +97,7 @@ + static void + StandOut(int flag) + { +- if (startS != 0 && finisS != 0) { ++ if (startS != NULL && finisS != NULL) { + tputs(flag ? startS : finisS, 1, outc); + } + } +@@ -105,7 +105,7 @@ + static void + Underline(int flag) + { +- if (startU != 0 && finisU != 0) { ++ if (startU != NULL && finisU != NULL) { + tputs(flag ? startU : finisU, 1, outc); + } + } +@@ -116,7 +116,7 @@ + const char *base = string; + int first, last; + +- if (moveit != 0) { ++ if (moveit != NULL) { + tputs(tgoto(moveit, 0, height - 1), 1, outc); + tputs(wipeit, 1, outc); + } +@@ -124,7 +124,7 @@ + while (*string != 0) { + int ch = *string; + if (ch != ' ') { +- if (moveit != 0) { ++ if (moveit != NULL) { + for (first = length - 2; first >= (string - base); first--) { + if (first < length - 1) { + tputs(tgoto(moveit, first + 1, height - 1), 1, outc); +@@ -152,7 +152,7 @@ + Underline(0); + } + } +- if (moveit != 0) ++ if (moveit != NULL) + Backup(); + } + StandOut(1); +@@ -161,7 +161,7 @@ + fflush(stdout); + string++; + } +- if (moveit != 0) ++ if (moveit != NULL) + tputs(wipeit, 1, outc); + putchar('\n'); + } +@@ -190,7 +190,7 @@ + char area[1024], *ap = area; + int z; + +- if (name == 0) ++ if (name == NULL) + #ifdef EXP_WIN32_DRIVER + name = "ms-terminal"; + #else +@@ -205,12 +205,12 @@ + length = tgetnum("co"); + moveit = tgetstr("cm", &ap); + +- if (wipeit == 0 +- || moveit == 0 ++ if (wipeit == NULL ++ || moveit == NULL + || height <= 0 + || length <= 0) { +- wipeit = 0; +- moveit = 0; ++ wipeit = NULL; ++ moveit = NULL; + height = 0; + length = 0; + } +@@ -276,7 +276,7 @@ + } else { + static char world[] = "Hello World"; + static char *hello[] = +- {world, 0}; ++ {world, NULL}; + railroad(hello); + } + ExitProgram(EXIT_SUCCESS); +Index: test/rain.c +Prereq: 1.62 +--- ncurses-6.5-20241130+/test/rain.c 2024-10-06 21:09:00.000000000 +0000 ++++ ncurses-6.5-20241207/test/rain.c 2024-12-07 22:46:42.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: rain.c,v 1.62 2024/10/06 21:09:00 tom Exp $ ++ * $Id: rain.c,v 1.63 2024/12/07 22:46:42 tom Exp $ + */ + #include <test.priv.h> + #include <popup_msg.h> +@@ -335,7 +335,7 @@ + " s do single-step", + " <space> undo single-step", + "", +- 0 ++ NULL + }; + + bool done = FALSE; +Index: test/redraw.c +Prereq: 1.18 +--- ncurses-6.5-20241130+/test/redraw.c 2024-10-06 21:17:54.000000000 +0000 ++++ ncurses-6.5-20241207/test/redraw.c 2024-12-07 22:46:42.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: redraw.c,v 1.18 2024/10/06 21:17:54 tom Exp $ ++ * $Id: redraw.c,v 1.19 2024/12/07 22:46:42 tom Exp $ + * + * Demonstrate the redrawwin() and wredrawln() functions. + * Thomas Dickey - 2006/11/4 +@@ -76,7 +76,7 @@ + "", + "Other control characters are added to the screen in printable form.", + "Other printable characters are added to the screen as is.", +- 0 ++ NULL + }; + + WINDOW *win1; +Index: test/savescreen.c +Prereq: 1.66 +--- ncurses-6.5-20241130+/test/savescreen.c 2024-11-30 18:48:40.000000000 +0000 ++++ ncurses-6.5-20241207/test/savescreen.c 2024-12-07 22:46:42.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: savescreen.c,v 1.66 2024/11/30 18:48:40 tom Exp $ ++ * $Id: savescreen.c,v 1.67 2024/12/07 22:46:42 tom Exp $ + * + * Demonstrate save/restore functions from the curses library. + * Thomas Dickey - 2007/7/14 +@@ -89,7 +89,7 @@ + if (!keep_dumps) { + int n; + +- for (n = 0; files[n] != 0; ++n) { ++ for (n = 0; files[n] != NULL; ++n) { + unlink(files[n]); + } + } +@@ -173,7 +173,7 @@ + NCURSES_CONST char *filename = files[which]; + bool dumped = FALSE; + +- if (filename != 0) { ++ if (filename != NULL) { + dumped = TRUE; + show_what(color, ++which, last); + if (scr_dump(filename) == ERR) { +@@ -230,7 +230,7 @@ + " a toggle between '#' and graphic symbol for drawing", + " c change color drawn by line to next in palette", + " h,j,k,l or arrows to move around the screen, drawing", +- 0 ++ NULL + }; + popup_msg(stdscr, msgs); + } +@@ -247,7 +247,7 @@ + " q quit", + " <space> load the next screen", + " <backspace> load the previous screen", +- 0 ++ NULL + }; + popup_msg(stdscr, msgs); + } +@@ -286,7 +286,7 @@ + bool replaying = FALSE; + bool done = FALSE; + char **files; +- NCURSES_CONST char *fill_by = 0; ++ NCURSES_CONST char *fill_by = NULL; + #if USE_WIDEC_SUPPORT + cchar_t mycc; + static const wchar_t mywc[2] = +@@ -366,7 +366,7 @@ + * After that, use color pairs for constructing a test-pattern, e.g., + * imitating xterm's scripts. + */ +- if (fill_by == 0) { ++ if (fill_by == NULL) { + if (COLORS <= 256) { + for (n = 0; n < COLORS; ++n) + init_pair((short) (n + MAX_ANSI), (short) n, (short) n); +@@ -407,7 +407,7 @@ + } + #endif + } +- if ((fill_by == 0) && !replaying) { ++ if ((fill_by == NULL) && !replaying) { + #if USE_WIDEC_SUPPORT + int cube = 0; + #endif +@@ -484,9 +484,9 @@ + } + } + +- if (fill_by != 0) { ++ if (fill_by != NULL) { + FILE *fp = fopen(fill_by, "r"); +- if (fp != 0) { ++ if (fp != NULL) { + bool filled = FALSE; + move(1, 0); + while ((ch = fgetc(fp)) != EOF) { +@@ -577,7 +577,7 @@ + int x = 0; + int color = 0; + int altchars = 0; +- bool dirty = use_colors || (fill_by != 0); ++ bool dirty = use_colors || (fill_by != NULL); + + while (!done) { + switch (get_command(color, which, last)) { +Index: test/sp_tinfo.c +Prereq: 1.29 +--- ncurses-6.5-20241130+/test/sp_tinfo.c 2023-06-24 14:14:56.000000000 +0000 ++++ ncurses-6.5-20241207/test/sp_tinfo.c 2024-12-07 23:03:07.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2019-2022,2023 Thomas E. Dickey * ++ * Copyright 2019-2023,2024 Thomas E. Dickey * + * Copyright 2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -28,7 +28,7 @@ + ****************************************************************************/ + + /* +- * $Id: sp_tinfo.c,v 1.29 2023/06/24 14:14:56 tom Exp $ ++ * $Id: sp_tinfo.c,v 1.30 2024/12/07 23:03:07 tom Exp $ + * + * TOTO: add option for non-sp-funcs interface + */ +@@ -138,7 +138,7 @@ + show_string(MYDATA * data, const char *name, const char *value) + { + fprintf(data->fp, " %s = ", name); +- if (value == 0) { ++ if (value == NULL) { + fprintf(data->fp, "(missing)"); + } else if (value == (char *) -1) { + fprintf(data->fp, "(canceled)"); +@@ -218,7 +218,7 @@ + define_key_sp(sp, my_text, my_code); + has_key_sp(sp, 0); + key_defined_sp(sp, my_text); +- if ((s = keybound_sp(sp, my_code, 0)) != 0) ++ if ((s = keybound_sp(sp, my_code, 0)) != NULL) + free(s); + #endif + keyname_sp(sp, '?'); +@@ -240,7 +240,7 @@ + typeahead_sp(sp, FALSE); /* waddch */ + use_env_sp(sp, FALSE); /* newterm */ + use_tioctl_sp(sp, FALSE); /* newterm */ +- intrflush_sp(sp, 0, 0); /* wgetch */ ++ intrflush_sp(sp, NULL, 0); /* wgetch */ + flushinp_sp(sp); /* waddch */ + halfdelay_sp(sp, 5); /* wgetch */ + +Index: test/tclock.c +Prereq: 1.49 +--- ncurses-6.5-20241130+/test/tclock.c 2024-10-05 18:47:56.000000000 +0000 ++++ ncurses-6.5-20241207/test/tclock.c 2024-12-07 22:46:42.000000000 +0000 +@@ -1,4 +1,4 @@ +-/* $Id: tclock.c,v 1.49 2024/10/05 18:47:56 tom Exp $ */ ++/* $Id: tclock.c,v 1.50 2024/12/07 22:46:42 tom Exp $ */ + + #define NEED_TIME_H + #include <test.priv.h> +@@ -220,7 +220,7 @@ + for (;;) { + napms(100); + +- tim = time(0); ++ tim = time(NULL); + t = localtime(&tim); + + hours = (t->tm_hour + (t->tm_min / 60.0)); +Index: test/test_add_wchstr.c +Prereq: 1.35 +--- ncurses-6.5-20241130+/test/test_add_wchstr.c 2024-10-05 19:26:24.000000000 +0000 ++++ ncurses-6.5-20241207/test/test_add_wchstr.c 2024-12-07 22:41:11.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: test_add_wchstr.c,v 1.35 2024/10/05 19:26:24 tom Exp $ ++ * $Id: test_add_wchstr.c,v 1.36 2024/12/07 22:41:11 tom Exp $ + * + * Demonstrate the waddwchstr() and wadd_wch functions. + * Thomas Dickey - 2009/9/12 +@@ -88,7 +88,7 @@ + static size_t temp_length; + + #define TempBuffer(source_len, source_cast) \ +- if (source != 0) { \ ++ if (source != NULL) { \ + const char *temp; \ + size_t need = source_len + 1; \ + wchar_t have[2]; \ +@@ -107,7 +107,7 @@ + if (!pass_ctls \ + && have[0] != 0 \ + && have[0] < 256 \ +- && (temp = unctrl((chtype) have[0])) != 0 \ ++ && (temp = unctrl((chtype) have[0])) != NULL \ + && strlen(temp) > 1) { \ + while (*temp != '\0') { \ + have[0] = (wchar_t) *temp++; \ +@@ -117,9 +117,9 @@ + setcchar(&temp_buffer[n++], have, A_NORMAL, 0, NULL); \ + } \ + } while (have[0] != 0); \ +- } else if (temp_buffer != 0) { \ ++ } else if (temp_buffer != NULL) { \ + free(temp_buffer); \ +- temp_buffer = 0; \ ++ temp_buffer = NULL; \ + temp_length = 0; \ + } \ + return temp_buffer; +@@ -136,7 +136,7 @@ + for (n = 0; source[n] != 0; ++n) { + const char *s; + +- if ((source[n] < 256) && (s = unctrl((chtype) source[n])) != 0) { ++ if ((source[n] < 256) && (s = unctrl((chtype) source[n])) != NULL) { + adjust += (strlen(s) - 1); + } + } +@@ -310,9 +310,9 @@ + int row2, col2; + int length; + wchar_t buffer[BUFSIZ]; +- WINDOW *look = 0; +- WINDOW *work = 0; +- WINDOW *show = 0; ++ WINDOW *look = NULL; ++ WINDOW *work = NULL; ++ WINDOW *show = NULL; + int margin = (2 * MY_TABSIZE) - 1; + Options option = (Options) ((unsigned) (m_opt + ? oMove +Index: test/test_addchstr.c +Prereq: 1.30 +--- ncurses-6.5-20241130+/test/test_addchstr.c 2024-10-05 19:26:24.000000000 +0000 ++++ ncurses-6.5-20241207/test/test_addchstr.c 2024-12-07 22:41:11.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: test_addchstr.c,v 1.30 2024/10/05 19:26:24 tom Exp $ ++ * $Id: test_addchstr.c,v 1.31 2024/12/07 22:41:11 tom Exp $ + * + * Demonstrate the waddchstr() and waddch functions. + * Thomas Dickey - 2009/9/12 +@@ -82,7 +82,7 @@ + + for (n = 0; n < result; ++n) { + const char *s = unctrl(UChar(source[n])); +- if (s != 0) { ++ if (s != NULL) { + adjust += (strlen(s) - 1); + } + } +@@ -94,7 +94,7 @@ + static chtype * + ChStr(const char *source) + { +- if (source != 0) { ++ if (source != NULL) { + size_t need = ChLen(source) + 1; + int n = 0; + +@@ -107,7 +107,7 @@ + do { + const char *s; + chtype ch = UChar(*source++); +- if (!pass_ctls && (s = unctrl(ch)) != 0) { ++ if (!pass_ctls && (s = unctrl(ch)) != NULL) { + while (*s != '\0') { + temp_buffer[n++] = UChar(*s++); + } +@@ -116,9 +116,9 @@ + } + } while (source[0] != 0); + temp_buffer[n] = 0; +- } else if (temp_buffer != 0) { ++ } else if (temp_buffer != NULL) { + free(temp_buffer); +- temp_buffer = 0; ++ temp_buffer = NULL; + temp_length = 0; + } + return temp_buffer; +@@ -218,9 +218,9 @@ + int row2, col2; + int length; + char buffer[BUFSIZ]; +- WINDOW *look = 0; +- WINDOW *work = 0; +- WINDOW *show = 0; ++ WINDOW *look = NULL; ++ WINDOW *work = NULL; ++ WINDOW *show = NULL; + int margin = (2 * MY_TABSIZE) - 1; + Options option = (Options) ((unsigned) (m_opt + ? oMove +Index: test/test_addstr.c +Prereq: 1.21 +--- ncurses-6.5-20241130+/test/test_addstr.c 2024-10-05 19:27:33.000000000 +0000 ++++ ncurses-6.5-20241207/test/test_addstr.c 2024-12-07 22:41:11.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: test_addstr.c,v 1.21 2024/10/05 19:27:33 tom Exp $ ++ * $Id: test_addstr.c,v 1.22 2024/12/07 22:41:11 tom Exp $ + * + * Demonstrate the waddstr() and waddch functions. + * Thomas Dickey - 2009/9/12 +@@ -140,9 +140,9 @@ + int row2, col2; + int length; + char buffer[BUFSIZ]; +- WINDOW *look = 0; +- WINDOW *work = 0; +- WINDOW *show = 0; ++ WINDOW *look = NULL; ++ WINDOW *work = NULL; ++ WINDOW *show = NULL; + int margin = (2 * MY_TABSIZE) - 1; + Options option = (Options) ((unsigned) (m_opt + ? oMove +Index: test/test_addwstr.c +Prereq: 1.23 +--- ncurses-6.5-20241130+/test/test_addwstr.c 2024-10-05 19:27:33.000000000 +0000 ++++ ncurses-6.5-20241207/test/test_addwstr.c 2024-12-07 22:41:11.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: test_addwstr.c,v 1.23 2024/10/05 19:27:33 tom Exp $ ++ * $Id: test_addwstr.c,v 1.24 2024/12/07 22:41:11 tom Exp $ + * + * Demonstrate the waddwstr() and wadd_wch functions. + * Thomas Dickey - 2009/9/12 +@@ -233,9 +233,9 @@ + int row2, col2; + int length; + wchar_t buffer[BUFSIZ]; +- WINDOW *look = 0; +- WINDOW *work = 0; +- WINDOW *show = 0; ++ WINDOW *look = NULL; ++ WINDOW *work = NULL; ++ WINDOW *show = NULL; + int margin = (2 * MY_TABSIZE) - 1; + Options option = (Options) ((unsigned) (m_opt + ? oMove +Index: test/test_arrays.c +Prereq: 1.14 +--- ncurses-6.5-20241130+/test/test_arrays.c 2024-11-30 17:00:55.000000000 +0000 ++++ ncurses-6.5-20241207/test/test_arrays.c 2024-12-07 22:46:42.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: test_arrays.c,v 1.14 2024/11/30 17:00:55 tom Exp $ ++ * $Id: test_arrays.c,v 1.15 2024/12/07 22:46:42 tom Exp $ + * + * Author: Thomas E Dickey + * +@@ -66,7 +66,7 @@ + int n; + + printf("%s:\n", name); +- for (n = 0; list[n] != 0; ++n) { ++ for (n = 0; list[n] != NULL; ++n) { + printf("%5d:%s\n", n, list[n]); + } + } +Index: test/test_get_wstr.c +Prereq: 1.16 +--- ncurses-6.5-20241130+/test/test_get_wstr.c 2024-10-06 23:15:10.000000000 +0000 ++++ ncurses-6.5-20241207/test/test_get_wstr.c 2024-12-07 22:46:42.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: test_get_wstr.c,v 1.16 2024/10/06 23:15:10 tom Exp $ ++ * $Id: test_get_wstr.c,v 1.17 2024/12/07 22:46:42 tom Exp $ + * + * Author: Thomas E Dickey + * +@@ -158,10 +158,10 @@ + "", + " w - recur to subwindow", + " ?,<F1> - show help-screen", +- 0 ++ NULL + }; +- WINDOW *txtbox = 0; +- WINDOW *txtwin = 0; ++ WINDOW *txtbox = NULL; ++ WINDOW *txtwin = NULL; + FILE *fp; + int ch; + int rc; +@@ -172,7 +172,7 @@ + int actual; + wint_t buffer[MAX_COLS]; + +- if (argv[level] == 0) { ++ if (argv[level] == NULL) { + beep(); + return FALSE; + } +@@ -200,7 +200,7 @@ + txt_x = 0; + wmove(txtwin, txt_y, txt_x); + +- if ((fp = fopen(argv[level], "r")) != 0) { ++ if ((fp = fopen(argv[level], "r")) != NULL) { + while ((ch = fgetc(fp)) != EOF) { + if (waddch(txtwin, UChar(ch)) != OK) { + break; +@@ -250,7 +250,7 @@ + + case 'w': + recursive_test(level + 1, argv, strwin); +- if (txtbox != 0) { ++ if (txtbox != NULL) { + touchwin(txtbox); + wnoutrefresh(txtbox); + } else { +Index: test/test_getstr.c +Prereq: 1.19 +--- ncurses-6.5-20241130+/test/test_getstr.c 2024-10-06 22:36:46.000000000 +0000 ++++ ncurses-6.5-20241207/test/test_getstr.c 2024-12-07 22:46:42.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: test_getstr.c,v 1.19 2024/10/06 22:36:46 tom Exp $ ++ * $Id: test_getstr.c,v 1.20 2024/12/07 22:46:42 tom Exp $ + * + * Author: Thomas E Dickey + * +@@ -165,10 +165,10 @@ + "", + " w - recur to subwindow", + " ?,<F1> - show help-screen", +- 0 ++ NULL + }; +- WINDOW *txtbox = 0; +- WINDOW *txtwin = 0; ++ WINDOW *txtbox = NULL; ++ WINDOW *txtwin = NULL; + FILE *fp; + int ch; + int rc; +@@ -180,7 +180,7 @@ + + char buffer[MAX_COLS]; + +- if (argv[level] == 0) { ++ if (argv[level] == NULL) { + beep(); + return FALSE; + } +@@ -208,7 +208,7 @@ + txt_x = 0; + wmove(txtwin, txt_y, txt_x); + +- if ((fp = fopen(argv[level], "r")) != 0) { ++ if ((fp = fopen(argv[level], "r")) != NULL) { + while ((ch = fgetc(fp)) != EOF) { + if (waddch(txtwin, UChar(ch)) != OK) { + break; +@@ -258,7 +258,7 @@ + + case 'w': + recursive_test(level + 1, argv, strwin); +- if (txtbox != 0) { ++ if (txtbox != NULL) { + touchwin(txtbox); + wnoutrefresh(txtbox); + } else { +Index: test/test_instr.c +Prereq: 1.15 +--- ncurses-6.5-20241130+/test/test_instr.c 2024-10-06 21:11:54.000000000 +0000 ++++ ncurses-6.5-20241207/test/test_instr.c 2024-12-07 22:46:42.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: test_instr.c,v 1.15 2024/10/06 21:11:54 tom Exp $ ++ * $Id: test_instr.c,v 1.16 2024/12/07 22:46:42 tom Exp $ + * + * Author: Thomas E Dickey + * +@@ -83,7 +83,7 @@ + ,"w opens new window on the next filename." + ,"q quits the current file/window." + ,"? shows this help-window" +- ,0 ++ ,NULL + }; + + popup_msg(win, msgs); +@@ -92,8 +92,8 @@ + static int + recursive_test(int level, char **argv, WINDOW *chrwin, WINDOW *strwin) + { +- WINDOW *txtbox = 0; +- WINDOW *txtwin = 0; ++ WINDOW *txtbox = NULL; ++ WINDOW *txtwin = NULL; + FILE *fp; + int ch; + int txt_x = 0, txt_y = 0; +@@ -102,7 +102,7 @@ + + char buffer[MAX_COLS]; + +- if (argv[level] == 0) { ++ if (argv[level] == NULL) { + beep(); + return FALSE; + } +@@ -131,7 +131,7 @@ + txt_x = 0; + wmove(txtwin, txt_y, txt_x); + +- if ((fp = fopen(argv[level], "r")) != 0) { ++ if ((fp = fopen(argv[level], "r")) != NULL) { + while ((ch = fgetc(fp)) != EOF) { + if (waddch(txtwin, UChar(ch)) != OK) { + break; +@@ -174,7 +174,7 @@ + break; + case 'w': + recursive_test(level + 1, argv, chrwin, strwin); +- if (txtbox != 0) { ++ if (txtbox != NULL) { + touchwin(txtbox); + wnoutrefresh(txtbox); + } else { +Index: test/test_inwstr.c +Prereq: 1.11 +--- ncurses-6.5-20241130+/test/test_inwstr.c 2024-10-06 23:15:38.000000000 +0000 ++++ ncurses-6.5-20241207/test/test_inwstr.c 2024-12-07 22:46:42.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: test_inwstr.c,v 1.11 2024/10/06 23:15:38 tom Exp $ ++ * $Id: test_inwstr.c,v 1.12 2024/12/07 22:46:42 tom Exp $ + * + * Author: Thomas E Dickey + * +@@ -86,7 +86,7 @@ + ,"w opens new window on the next filename." + ,"q quits the current file/window." + ,"? shows this help-window" +- ,0 ++ ,NULL + }; + + popup_msg(win, msgs); +@@ -95,8 +95,8 @@ + static int + recursive_test(int level, char **argv, WINDOW *chrwin, WINDOW *strwin) + { +- WINDOW *txtbox = 0; +- WINDOW *txtwin = 0; ++ WINDOW *txtbox = NULL; ++ WINDOW *txtwin = NULL; + FILE *fp; + int ch; + int txt_x = 0, txt_y = 0; +@@ -104,7 +104,7 @@ + int limit = getmaxx(strwin) - 5; + wchar_t buffer[MAX_COLS]; + +- if (argv[level] == 0) { ++ if (argv[level] == NULL) { + beep(); + return FALSE; + } +@@ -132,7 +132,7 @@ + txt_x = 0; + wmove(txtwin, txt_y, txt_x); + +- if ((fp = fopen(argv[level], "r")) != 0) { ++ if ((fp = fopen(argv[level], "r")) != NULL) { + while ((ch = fgetc(fp)) != EOF) { + if (waddch(txtwin, UChar(ch)) != OK) { + break; +@@ -175,7 +175,7 @@ + break; + case 'w': + recursive_test(level + 1, argv, chrwin, strwin); +- if (txtbox != 0) { ++ if (txtbox != NULL) { + touchwin(txtbox); + wnoutrefresh(txtbox); + } else { +Index: test/test_opaque.c +Prereq: 1.17 +--- ncurses-6.5-20241130+/test/test_opaque.c 2024-11-23 19:10:23.000000000 +0000 ++++ ncurses-6.5-20241207/test/test_opaque.c 2024-12-07 22:46:42.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: test_opaque.c,v 1.17 2024/11/23 19:10:23 tom Exp $ ++ * $Id: test_opaque.c,v 1.18 2024/12/07 22:46:42 tom Exp $ + * + * Author: Thomas E Dickey + * +@@ -269,8 +269,8 @@ + static int + test_opaque(int level, char **argv, WINDOW *stswin) + { +- WINDOW *txtbox = 0; +- WINDOW *txtwin = 0; ++ WINDOW *txtbox = NULL; ++ WINDOW *txtwin = NULL; + FILE *fp; + int ch; + int txt_x = 0, txt_y = 0; +@@ -278,7 +278,7 @@ + bool in_status = FALSE; + int active = 0; + +- if (argv[level] == 0) { ++ if (argv[level] == NULL) { + beep(); + return FALSE; + } +@@ -306,7 +306,7 @@ + txt_x = 0; + wmove(txtwin, txt_y, txt_x); + +- if ((fp = fopen(argv[level], "r")) != 0) { ++ if ((fp = fopen(argv[level], "r")) != NULL) { + while ((ch = fgetc(fp)) != EOF) { + if (waddch(txtwin, UChar(ch)) != OK) { + break; +@@ -393,7 +393,7 @@ + break; + case 'w': + test_opaque(level + 1, argv, stswin); +- if (txtbox != 0) { ++ if (txtbox != NULL) { + touchwin(txtbox); + wnoutrefresh(txtbox); + } else { +Index: test/test_setupterm.c +Prereq: 1.17 +--- ncurses-6.5-20241130+/test/test_setupterm.c 2023-06-24 14:19:52.000000000 +0000 ++++ ncurses-6.5-20241207/test/test_setupterm.c 2024-12-07 23:03:07.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020-2022,2023 Thomas E. Dickey * ++ * Copyright 2020-2023,2024 Thomas E. Dickey * + * Copyright 2015,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -30,7 +30,7 @@ + /* + * Author: Thomas E. Dickey + * +- * $Id: test_setupterm.c,v 1.17 2023/06/24 14:19:52 tom Exp $ ++ * $Id: test_setupterm.c,v 1.18 2024/12/07 23:03:07 tom Exp $ + * + * A simple demo of setupterm/restartterm. + */ +@@ -98,9 +98,9 @@ + int expect_rc = -1; + int expect_err = -1; + +- if (name == 0) ++ if (name == NULL) + name = getenv("TERM"); +- if (name == 0) ++ if (name == NULL) + name = "?"; + + switch (*name) { +@@ -244,7 +244,7 @@ + } + + if (a_opt) { +- static char predef[][9] = ++ static char predef[][12] = + {"vt100", "dumb", "lpr", "unknown", "none-such"}; + if (optind < argc) { + usage(FALSE); +Index: test/test_sgr.c +Prereq: 1.25 +--- ncurses-6.5-20241130+/test/test_sgr.c 2024-10-06 21:05:50.000000000 +0000 ++++ ncurses-6.5-20241207/test/test_sgr.c 2024-12-07 22:48:21.000000000 +0000 +@@ -30,7 +30,7 @@ + /* + * Author: Thomas E. Dickey + * +- * $Id: test_sgr.c,v 1.25 2024/10/06 21:05:50 tom Exp $ ++ * $Id: test_sgr.c,v 1.26 2024/12/07 22:48:21 tom Exp $ + * + * A simple demo of the sgr/sgr0 terminal capabilities. + */ +@@ -106,10 +106,10 @@ + static char * + next_dbitem(void) + { +- char *result = 0; ++ char *result = NULL; + + if (db_list) { +- if ((result = db_list[db_item]) == 0) { ++ if ((result = db_list[db_item]) == NULL) { + db_item = 0; + result = db_list[0]; + } else { +@@ -129,7 +129,7 @@ + for (n = 0; db_list[n]; ++n) + free(db_list[n]); + free(db_list); +- db_list = 0; ++ db_list = NULL; + } + } + #endif +@@ -230,20 +230,20 @@ + BITS2P(7), + BITS2P(8), + BITS2P(9)); +- if (values[count] != 0) { ++ if (values[count] != NULL) { + values[count] = strdup(values[count]); + } + } + for (count = 0; count < MAXSGR; ++count) { +- if (values[count] != 0) { ++ if (values[count] != NULL) { + for (j = count + 1; j < MAXSGR; ++j) { +- if (values[j] == 0) ++ if (values[j] == NULL) + continue; + if (strcmp(values[count], values[j])) + continue; + if (one_bit(count, j)) { + free(values[j]); +- values[j] = 0; ++ values[j] = NULL; + } + } + } +@@ -253,7 +253,7 @@ + for (count = 0; count < MAXSGR; ++count) { + if ((count & mask) != 0) + continue; +- if (values[count] != 0 && values[count + mask] != 0) { ++ if (values[count] != NULL && values[count + mask] != NULL) { + mask = 0; + break; + } +@@ -272,14 +272,14 @@ + } + } + for (count = 0; count < MAXSGR; ++count) { +- if (values[count] != 0) { ++ if (values[count] != NULL) { + bool found = FALSE; + if ((repeat & MASK_SMSO) != 0 + && (count & MASK_SMSO) != 0) { + found = TRUE; + } else { + for (j = 0; j < count; ++j) { +- if (values[j] != 0 && !strcmp(values[j], values[count])) { ++ if (values[j] != NULL && !strcmp(values[j], values[count])) { + if ((repeat & MASK_SMSO) != 0 + && (j & MASK_SMSO) != 0 + && (count & reason) != 0) { +@@ -366,7 +366,7 @@ + for (n = optind; n < argc; ++n) { + brute_force(argv[n]); + } +- } else if ((name = getenv("TERM")) != 0) { ++ } else if ((name = getenv("TERM")) != NULL) { + brute_force(name); + } else { + static const char dumb[] = "dumb"; +Index: test/test_tparm.c +Prereq: 1.42 +--- ncurses-6.5-20241130+/test/test_tparm.c 2024-10-06 20:50:27.000000000 +0000 ++++ ncurses-6.5-20241207/test/test_tparm.c 2024-12-07 23:13:34.000000000 +0000 +@@ -29,7 +29,7 @@ + /* + * Author: Thomas E. Dickey + * +- * $Id: test_tparm.c,v 1.42 2024/10/06 20:50:27 tom Exp $ ++ * $Id: test_tparm.c,v 1.43 2024/12/07 23:13:34 tom Exp $ + * + * Exercise tparm/tiparm, either for all possible capabilities with fixed + * parameters, or one capability with specific combinations of parameters. +@@ -52,7 +52,7 @@ + if (length + 2 >= limit) { \ + limit *= 2; \ + array = typeRealloc(char *, limit, array); \ +- if (array == 0) { \ ++ if (array == NULL) { \ + failed("no memory: " #array); \ + } \ + } +@@ -109,9 +109,9 @@ + static int + isNumeric(NCURSES_CONST char *source) + { +- char *next = 0; ++ char *next = NULL; + long value = strtol(source, &next, 0); +- int result = (next == 0 || next == source || *next != '\0') ? 0 : 1; ++ int result = (next == NULL || next == source || *next != '\0') ? 0 : 1; + (void) value; + return result; + } +@@ -121,10 +121,10 @@ + { + int code = 1; + if (VALID_STRING(value)) { +- if (strstr(value, "%p") == 0 +- && strstr(value, "%d") == 0 +- && strstr(value, "%s") == 0 +- && (!p_opt || strstr(value, "$<") == 0)) { ++ if (strstr(value, "%p") == NULL ++ && strstr(value, "%d") == NULL ++ && strstr(value, "%s") == NULL ++ && (!p_opt || strstr(value, "$<") == NULL)) { + if (v_opt > 2) + printf("? %s noparams\n", name); + code = 0; +@@ -334,7 +334,7 @@ + } + if (v_opt > 1) { + int n; +- printf(".. %3d =", result != 0 ? (int) strlen(result) : -1); ++ printf(".. %3d =", result != NULL ? (int) strlen(result) : -1); + for (n = 0; n < nparam; ++n) { + if (use_strings[n]) { + if (number[n]) { +@@ -398,7 +398,7 @@ + int r_run, t_run, n_run; + char *old_term = getenv("TERM"); + int r_opt = 1; +- char *t_opt = 0; ++ char *t_opt = NULL; + + int std_caps = 0; /* predefine items in all_caps[] */ + int len_caps = 0; /* cur # of items in all_caps[] */ +@@ -423,7 +423,10 @@ + char **str_parms = typeCalloc(char *, max_parms); + long use_parms = 1; + +- if (all_caps == 0 || all_terms == 0 || num_parms == 0 || str_parms == 0) ++ if (all_caps == NULL ++ || all_terms == NULL ++ || num_parms == NULL ++ || str_parms == NULL) + failed("no memory"); + + while ((ch = getopt(argc, argv, OPTS_COMMON "T:aipr:sv")) != -1) { +@@ -479,7 +482,7 @@ + */ + while (optind < argc) { + if (isNumeric(argv[optind])) { +- char *dummy = 0; ++ char *dummy = NULL; + long value = strtol(argv[optind], &dummy, 0); + num_parms[len_parms] = (int) value; + } +@@ -504,11 +507,11 @@ + * Make a list of values for $TERM. Accept "-" for standard input to + * simplify scripting a check of the whole database. + */ +- old_term = strdup((old_term == 0) ? "unknown" : old_term); +- if (t_opt != 0) { ++ old_term = strdup((old_term == NULL) ? "unknown" : old_term); ++ if (t_opt != NULL) { + if (!strcmp(t_opt, "-")) { + char buffer[BUFSIZ]; +- while (fgets(buffer, sizeof(buffer) - 1, stdin) != 0) { ++ while (fgets(buffer, sizeof(buffer) - 1, stdin) != NULL) { + char *s = buffer; + char *t; + while (isspace(UChar(s[0]))) +@@ -520,7 +523,7 @@ + if (len_terms + 2 >= max_terms) { + max_terms *= 2; + all_terms = typeRealloc(char *, max_terms, all_terms); +- if (all_terms == 0) ++ if (all_terms == NULL) + failed("no memory: all_terms"); + } + all_terms[len_terms++] = s; +@@ -528,12 +531,12 @@ + } else { + char *s = t_opt; + NCURSES_CONST char *t; +- while ((t = strtok(s, ",")) != 0) { +- s = 0; ++ while ((t = strtok(s, ",")) != NULL) { ++ s = NULL; + if (len_terms + 2 >= max_terms) { + max_terms *= 2; + all_terms = typeRealloc(char *, max_terms, all_terms); +- if (all_terms == 0) ++ if (all_terms == NULL) + failed("no memory: all_terms"); + } + all_terms[len_terms++] = strdup(t); +@@ -542,7 +545,7 @@ + } else { + all_terms[len_terms++] = strdup(old_term); + } +- all_terms[len_terms] = 0; ++ all_terms[len_terms] = NULL; + if (v_opt) { + printf("%d term%s:\n", PLURAL(len_terms)); + if (v_opt > 3) { +@@ -561,7 +564,7 @@ + */ + if (len_caps == 0) { + #if defined(HAVE_CURSES_DATA_BOOLNAMES) || defined(DECL_CURSES_DATA_BOOLNAMES) +- for (n = 0; strnames[n] != 0; ++n) { ++ for (n = 0; strnames[n] != NULL; ++n) { + GrowArray(all_caps, max_caps, len_caps); + all_caps[len_caps++] = strdup(strnames[n]); + } +@@ -571,7 +574,7 @@ + #endif + } + std_caps = len_caps; +- all_caps[len_caps] = 0; ++ all_caps[len_caps] = NULL; + if (v_opt) { + printf("%d name%s%s\n", PLURAL(len_caps), COLONS(len_caps)); + if (v_opt > 3) { +@@ -664,7 +667,7 @@ + free(all_caps[n]); + } + #endif +- if (cur_term != 0) { ++ if (cur_term != NULL) { + del_curterm(cur_term); + } else { + printf("? no cur_term\n"); +Index: test/test_vid_puts.c +Prereq: 1.17 +--- ncurses-6.5-20241130+/test/test_vid_puts.c 2022-12-10 22:28:50.000000000 +0000 ++++ ncurses-6.5-20241207/test/test_vid_puts.c 2024-12-07 23:03:19.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020-2021,2022 Thomas E. Dickey * ++ * Copyright 2020-2022,2024 Thomas E. Dickey * + * Copyright 2013-2014,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: test_vid_puts.c,v 1.17 2022/12/10 22:28:50 tom Exp $ ++ * $Id: test_vid_puts.c,v 1.18 2024/12/07 23:03:19 tom Exp $ + * + * Demonstrate the vid_puts and vid_attr functions. + * Thomas Dickey - 2013/01/12 +@@ -63,7 +63,7 @@ + static void + cleanup(void) + { +- if (cur_term != 0) { ++ if (cur_term != NULL) { + outs(exit_attribute_mode); + if (!outs(orig_colors)) + outs(orig_pair); +Index: test/test_vidputs.c +Prereq: 1.16 +--- ncurses-6.5-20241130+/test/test_vidputs.c 2024-10-06 21:17:54.000000000 +0000 ++++ ncurses-6.5-20241207/test/test_vidputs.c 2024-12-07 22:53:07.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: test_vidputs.c,v 1.16 2024/10/06 21:17:54 tom Exp $ ++ * $Id: test_vidputs.c,v 1.17 2024/12/07 22:53:07 tom Exp $ + * + * Demonstrate the vidputs and vidattr functions. + * Thomas Dickey - 2013/01/12 +@@ -63,7 +63,7 @@ + static void + cleanup(void) + { +- if (cur_term != 0) { ++ if (cur_term != NULL) { + outs(exit_attribute_mode); + if (!outs(orig_colors)) + outs(orig_pair); +Index: test/testcurs.c +Prereq: 1.59 +--- ncurses-6.5-20241130+/test/testcurs.c 2024-10-05 19:17:19.000000000 +0000 ++++ ncurses-6.5-20241207/test/testcurs.c 2024-12-07 22:53:07.000000000 +0000 +@@ -6,7 +6,7 @@ + * wrs(5/28/93) -- modified to be consistent (perform identically) with either + * PDCurses or under Unix System V, R4 + * +- * $Id: testcurs.c,v 1.59 2024/10/05 19:17:19 tom Exp $ ++ * $Id: testcurs.c,v 1.60 2024/12/07 22:53:07 tom Exp $ + */ + + #include <test.priv.h> +@@ -488,14 +488,14 @@ + *Buffer = 0; + scanw("%s", Buffer); + +- if (TIGETSTR("cvvis", "vs") != 0) { ++ if (TIGETSTR("cvvis", "vs") != NULL) { + wclear(win); + curs_set(2); + MvWAddStr(win, 1, 1, "The cursor should appear as a block (visible)"); + Continue(win); + } + +- if (TIGETSTR("civis", "vi") != 0) { ++ if (TIGETSTR("civis", "vi") != NULL) { + wclear(win); + curs_set(0); + MvWAddStr(win, 1, 1, +@@ -503,7 +503,7 @@ + Continue(win); + } + +- if (TIGETSTR("cnorm", "ve") != 0) { ++ if (TIGETSTR("cnorm", "ve") != NULL) { + wclear(win); + curs_set(1); + MvWAddStr(win, 1, 1, "The cursor should be an underline (normal)"); +@@ -592,7 +592,7 @@ + { + WINDOW *pad; + +- if ((pad = newpad(50, 100)) != 0) { ++ if ((pad = newpad(50, 100)) != NULL) { + WINDOW *spad; + + wattron(pad, A_REVERSE); +@@ -609,7 +609,7 @@ + raw(); + wgetch(pad); + +- if ((spad = subpad(pad, 12, 25, 6, 52)) != 0) { ++ if ((spad = subpad(pad, 12, 25, 6, 52)) != NULL) { + MvWAddStr(spad, 2, 2, "This is a new subpad"); + box(spad, 0, 0); + delwin(spad); +Index: test/view.c +Prereq: 1.149 +--- ncurses-6.5-20241130+/test/view.c 2024-11-30 18:15:06.000000000 +0000 ++++ ncurses-6.5-20241207/test/view.c 2024-12-07 22:53:07.000000000 +0000 +@@ -52,7 +52,7 @@ + * scroll operation worked, and the refresh() code only had to do a + * partial repaint. + * +- * $Id: view.c,v 1.149 2024/11/30 18:15:06 tom Exp $ ++ * $Id: view.c,v 1.150 2024/12/07 22:53:07 tom Exp $ + */ + + #include <test.priv.h> +@@ -114,7 +114,7 @@ + { + endwin(); + #if NO_LEAKS +- if (vec_lines != 0) { ++ if (vec_lines != NULL) { + int n; + for (n = 0; n < num_lines; ++n) { + free(vec_lines[n]); +@@ -172,7 +172,7 @@ + move(i, 0); + printw("%*d:", digits, actual); + clrtoeol(); +- if ((s = lptr[i - 1]) == 0) { ++ if ((s = lptr[i - 1]) == NULL) { + continue; + } + len = ch_len(s); +@@ -233,7 +233,7 @@ + size_t len; + struct stat sb; + char *my_blob; +- char **my_vec = 0; ++ char **my_vec = NULL; + WINDOW *my_win; + + if (stat(filename, &sb) != 0 +@@ -245,11 +245,11 @@ + failed("input is empty"); + } + +- if ((fp = fopen(filename, "r")) == 0) { ++ if ((fp = fopen(filename, "r")) == NULL) { + failed("cannot open input-file"); + } + +- if ((my_blob = malloc((size_t) sb.st_size + 1)) == 0) { ++ if ((my_blob = malloc((size_t) sb.st_size + 1)) == NULL) { + failed("cannot allocate memory for input-file"); + } + +@@ -280,7 +280,7 @@ + } + num_lines = k; + if (pass == 0) { +- if (((my_vec = typeCalloc(char *, (size_t) k + 2)) == 0)) { ++ if (((my_vec = typeCalloc(char *, (size_t) k + 2)) == NULL)) { + failed("cannot allocate line-vector #1"); + } + } else { +@@ -307,11 +307,11 @@ + } + width = (width + 1) * 5; + my_win = newwin(2, width, 0, 0); +- if (my_win == 0) { ++ if (my_win == NULL) { + failed("cannot allocate temporary window"); + } + +- if ((vec_lines = typeCalloc(NCURSES_CH_T *, (size_t) num_lines + 2)) == 0) { ++ if ((vec_lines = typeCalloc(NCURSES_CH_T *, (size_t) num_lines + 2)) == NULL) { + failed("cannot allocate line-vector #2"); + } + +@@ -358,7 +358,7 @@ + x = width - 1; + wmove(my_win, 0, 0); + /* "x + 1" works with standard curses; some implementations are buggy */ +- if ((vec_lines[k] = typeCalloc(NCURSES_CH_T, x + width + 1)) == 0) { ++ if ((vec_lines[k] = typeCalloc(NCURSES_CH_T, x + width + 1)) == NULL) { + failed("cannot allocate line-vector #3"); + } + #if USE_WIDEC_SUPPORT +@@ -427,7 +427,7 @@ + " s - use entered count for halfdelay() parameter", + " - if no entered count, stop nodelay()", + " <space> - begin nodelay()", +- 0 ++ NULL + }; + + int ch; +@@ -462,9 +462,9 @@ + #ifdef TRACE + case 'D': + { +- char *next = 0; ++ char *next = NULL; + int tvalue = (int) strtol(optarg, &next, 0); +- if (tvalue < 0 || (next != 0 && *next != 0)) ++ if (tvalue < 0 || (next != NULL && *next != 0)) + usage(FALSE); + curses_trace((unsigned) tvalue); + } +Index: test/xmas.c +Prereq: 1.39 +--- ncurses-6.5-20241130+/test/xmas.c 2022-12-04 00:40:11.000000000 +0000 ++++ ncurses-6.5-20241207/test/xmas.c 2024-12-07 22:53:07.000000000 +0000 +@@ -92,7 +92,7 @@ + /******************************************************************************/ + + /* +- * $Id: xmas.c,v 1.39 2022/12/04 00:40:11 tom Exp $ ++ * $Id: xmas.c,v 1.40 2024/12/07 22:53:07 tom Exp $ + */ + #include <test.priv.h> + +@@ -140,7 +140,7 @@ + { + if (has_colors()) { + int n = (int) (color + 1); +- if (my_pairs == 0) ++ if (my_pairs == NULL) + my_pairs = typeCalloc(bool, (size_t) (COLORS + 1)); + if (!my_pairs[n]) { + init_pair((short) n, (short) color, (short) my_bg); +@@ -638,7 +638,7 @@ + stop_curses(); + + #if NO_LEAKS +- if (my_pairs != 0) ++ if (my_pairs != NULL) + free(my_pairs); + #endif + +@@ -715,44 +715,44 @@ + } + curs_set(0); + +- if ((treescrn = newwin(16, 27, 3, 53)) == 0 || +- (treescrn2 = newwin(16, 27, 3, 53)) == 0 || +- (treescrn3 = newwin(16, 27, 3, 53)) == 0 || +- (treescrn4 = newwin(16, 27, 3, 53)) == 0 || +- (treescrn5 = newwin(16, 27, 3, 53)) == 0 || +- (treescrn6 = newwin(16, 27, 3, 53)) == 0 || +- (treescrn7 = newwin(16, 27, 3, 53)) == 0 || +- (treescrn8 = newwin(16, 27, 3, 53)) == 0 || +- +- (dotdeer0 = newwin(3, 71, 0, 8)) == 0 || +- +- (stardeer0 = newwin(4, 56, 0, 8)) == 0 || +- +- (lildeer0 = newwin(7, 53, 0, 8)) == 0 || +- (lildeer1 = newwin(2, 4, 0, 0)) == 0 || +- (lildeer2 = newwin(2, 4, 0, 0)) == 0 || +- (lildeer3 = newwin(2, 4, 0, 0)) == 0 || +- +- (middeer0 = newwin(15, 42, 0, 8)) == 0 || +- (middeer1 = newwin(3, 7, 0, 0)) == 0 || +- (middeer2 = newwin(3, 7, 0, 0)) == 0 || +- (middeer3 = newwin(3, 7, 0, 0)) == 0 || +- +- (bigdeer0 = newwin(10, 23, 0, 0)) == 0 || +- (bigdeer1 = newwin(10, 23, 0, 0)) == 0 || +- (bigdeer2 = newwin(10, 23, 0, 0)) == 0 || +- (bigdeer3 = newwin(10, 23, 0, 0)) == 0 || +- (bigdeer4 = newwin(10, 23, 0, 0)) == 0 || +- +- (lookdeer0 = newwin(10, 25, 0, 0)) == 0 || +- (lookdeer1 = newwin(10, 25, 0, 0)) == 0 || +- (lookdeer2 = newwin(10, 25, 0, 0)) == 0 || +- (lookdeer3 = newwin(10, 25, 0, 0)) == 0 || +- (lookdeer4 = newwin(10, 25, 0, 0)) == 0 || ++ if ((treescrn = newwin(16, 27, 3, 53)) == NULL || ++ (treescrn2 = newwin(16, 27, 3, 53)) == NULL || ++ (treescrn3 = newwin(16, 27, 3, 53)) == NULL || ++ (treescrn4 = newwin(16, 27, 3, 53)) == NULL || ++ (treescrn5 = newwin(16, 27, 3, 53)) == NULL || ++ (treescrn6 = newwin(16, 27, 3, 53)) == NULL || ++ (treescrn7 = newwin(16, 27, 3, 53)) == NULL || ++ (treescrn8 = newwin(16, 27, 3, 53)) == NULL || ++ ++ (dotdeer0 = newwin(3, 71, 0, 8)) == NULL || ++ ++ (stardeer0 = newwin(4, 56, 0, 8)) == NULL || ++ ++ (lildeer0 = newwin(7, 53, 0, 8)) == NULL || ++ (lildeer1 = newwin(2, 4, 0, 0)) == NULL || ++ (lildeer2 = newwin(2, 4, 0, 0)) == NULL || ++ (lildeer3 = newwin(2, 4, 0, 0)) == NULL || ++ ++ (middeer0 = newwin(15, 42, 0, 8)) == NULL || ++ (middeer1 = newwin(3, 7, 0, 0)) == NULL || ++ (middeer2 = newwin(3, 7, 0, 0)) == NULL || ++ (middeer3 = newwin(3, 7, 0, 0)) == NULL || ++ ++ (bigdeer0 = newwin(10, 23, 0, 0)) == NULL || ++ (bigdeer1 = newwin(10, 23, 0, 0)) == NULL || ++ (bigdeer2 = newwin(10, 23, 0, 0)) == NULL || ++ (bigdeer3 = newwin(10, 23, 0, 0)) == NULL || ++ (bigdeer4 = newwin(10, 23, 0, 0)) == NULL || ++ ++ (lookdeer0 = newwin(10, 25, 0, 0)) == NULL || ++ (lookdeer1 = newwin(10, 25, 0, 0)) == NULL || ++ (lookdeer2 = newwin(10, 25, 0, 0)) == NULL || ++ (lookdeer3 = newwin(10, 25, 0, 0)) == NULL || ++ (lookdeer4 = newwin(10, 25, 0, 0)) == NULL || + +- (w_holiday = newwin(1, 26, 3, 27)) == 0 || ++ (w_holiday = newwin(1, 26, 3, 27)) == NULL || + +- (w_del_msg = newwin(1, 19, 23, 60)) == 0) { ++ (w_del_msg = newwin(1, 19, 23, 60)) == NULL) { + stop_curses(); + fprintf(stderr, "Cannot create windows - screen too small\n"); + ExitProgram(EXIT_FAILURE); |