changeset 14132:85063feb159b

(tgetent): Find all the tc caps that there are.
author Karl Heuer <kwzh@gnu.org>
date Tue, 09 Jan 1996 23:44:41 +0000
parents 7717b68abd2e
children 7167b8612c52
files src/termcap.c
diffstat 1 files changed, 5 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/termcap.c	Tue Jan 09 23:40:33 1996 +0000
+++ b/src/termcap.c	Tue Jan 09 23:44:41 1996 +0000
@@ -423,7 +423,7 @@
   register int fd;
   struct buffer buf;
   register char *bp1;
-  char *bp2;
+  char *tc_search_point;
   char *term;
   int malloc_size = 0;
   register int c;
@@ -511,7 +511,7 @@
       malloc_size = indirect ? strlen (tcenv) + 1 : buf.size;
       bp = (char *) xmalloc (malloc_size);
     }
-  bp1 = bp;
+  tc_search_point = bp1 = bp;
 
   if (indirect)
     /* Copy the data from the environment variable.  */
@@ -542,11 +542,10 @@
 	  malloc_size = bp1 - bp + buf.size;
 	  termcap_name = (char *) xrealloc (bp, malloc_size);
 	  bp1 += termcap_name - bp;
+	  tc_search_point += termcap_name - bp;
 	  bp = termcap_name;
 	}
 
-      bp2 = bp1;
-
       /* Copy the line of the entry from buf into bp.  */
       termcap_name = buf.ptr;
       while ((*bp1++ = c = *termcap_name++) && c != '\n')
@@ -560,7 +559,8 @@
 
       /* Does this entry refer to another terminal type's entry?
 	 If something is found, copy it into heap and null-terminate it.  */
-      term = tgetst1 (find_capability (bp2, "tc"), (char **) 0);
+      tc_search_point = find_capability (tc_search_point, "tc");
+      term = tgetst1 (tc_search_point, (char **) 0);
     }
 
   close (fd);