diff --git a/ncurses/tinfo/name_match.c b/ncurses/tinfo/name_match.c
index c648535..71e584d 100644
--- a/ncurses/tinfo/name_match.c
+++ b/ncurses/tinfo/name_match.c
@@ -1,5 +1,6 @@
 /****************************************************************************
- * Copyright (c) 1999-2012,2013 Free Software Foundation, Inc.              *
+ * Copyright 2020 Thomas E. Dickey                                          *
+ * Copyright 1998-2013,2016 Free Software Foundation, Inc.                  *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -33,7 +34,7 @@
 #include <curses.priv.h>
 #include <tic.h>
 
-MODULE_ID("$Id: name_match.c,v 1.23 2013/05/25 20:20:08 tom Exp $")
+MODULE_ID("$Id: name_match.c,v 1.25 2020/02/02 23:34:34 tom Exp $")
 
 #define FirstName _nc_globals.first_name
 
@@ -58,8 +59,6 @@
 NCURSES_EXPORT(char *)
 _nc_first_name(const char *const sp)
 {
-    unsigned n;
-
 #if NO_LEAKS
     if (sp == 0) {
 	if (FirstName != 0) {
@@ -72,6 +71,7 @@
 	    FirstName = typeMalloc(char, MAX_NAME_SIZE + 1);
 
 	if (FirstName != 0) {
+	    unsigned n;
 	    const char *src = sp;
 #if NCURSES_USE_TERMCAP && NCURSES_XNAMES
 	    src = skip_index(sp);
@@ -93,11 +93,13 @@
 NCURSES_EXPORT(int)
 _nc_name_match(const char *const namelst, const char *const name, const char *const delim)
 {
-    const char *s, *d, *t;
-    int code, found;
+    const char *s;
 
     if ((s = namelst) != 0) {
 	while (*s != '\0') {
+	    const char *d, *t;
+	    int code, found;
+
 	    for (d = name; *d != '\0'; d++) {
 		if (*s != *d)
 		    break;
