hex.diff   [plain text]


Binary files ./misc/.terminfo.src.swp and ../ncurses-5.4+hex/misc/.terminfo.src.swp differ
diff -Nru ./misc/terminfo.src ../ncurses-5.4+hex/misc/terminfo.src
--- ./misc/terminfo.src	2004-01-17 17:37:18.000000000 -0800
+++ ../ncurses-5.4+hex/misc/terminfo.src	2004-11-27 15:10:30.000000000 -0800
@@ -4948,7 +4948,7 @@
 # hp2621 with function labels. Most of the time they are off,
 # but inside vi, the function key labels appear. You have to
 # hold down shift to get them to xmit.
-hp2621|hp2621a|hp2621A|2621|2621a|2621A|hp2621-wl|2621-wl|hp 2621 w/labels, 
+hp2621|hp2621a|2621|2621a|hp2621-wl|2621-wl|hp 2621 w/labels, 
 	is2=\E&jA\r, rmkx=\E&jA, use=hp2621-fl, 
 hp2621-fl|hp 2621, 
 	xhp@, xon, 
@@ -5441,7 +5441,7 @@
 	ri=\Ej, rmir=\Er, rmso=\EG0$<10/>, rmul=\EG0$<10/>, 
 	sgr0=\EG0$<10/>, smir=\Eq, smso=\EG4$<10/>, 
 	smul=\EG8$<10/>, tbc=\E0, vpa=\E[%p1%{32}%+%c, 
-hp70092|hp70092a|hp70092A|HP 700/92, 
+hp70092|hp70092a|HP 700/92, 
 	am, da, db, xhp, 
 	cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8, 
 	acsc=0cjgktlrmfn/q\,t5u6v8w7x., bel=^G, blink=\E&dA, 
diff -Nru ./ncurses/tinfo/read_entry.c ../ncurses-5.4+hex/ncurses/tinfo/read_entry.c
--- ./ncurses/tinfo/read_entry.c	2004-01-10 17:57:05.000000000 -0800
+++ ../ncurses-5.4+hex/ncurses/tinfo/read_entry.c	2004-11-27 14:15:50.000000000 -0800
@@ -474,7 +474,7 @@
     }
 
     /* truncate the terminal name to prevent buffer overflow */
-    (void) sprintf(ttn, "%c/%.*s", *tn, (int) sizeof(ttn) - 3, tn);
+    (void) sprintf(ttn, "%02x/%.*s", *tn, (int) sizeof(ttn) - 4, tn);
 
     /* This is System V behavior, in conjunction with our requirements for
      * writing terminfo entries.
diff -Nru ./ncurses/tinfo/write_entry.c ../ncurses-5.4+hex/ncurses/tinfo/write_entry.c
--- ./ncurses/tinfo/write_entry.c	2002-04-21 13:35:08.000000000 -0700
+++ ../ncurses-5.4+hex/ncurses/tinfo/write_entry.c	2004-11-27 14:30:37.000000000 -0800
@@ -160,25 +160,23 @@
 static void
 check_writeable(int code)
 {
-    static const char dirnames[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
-    static bool verified[sizeof(dirnames)];
+    static bool verified[256];
 
-    char dir[2];
+    char dir[3];
     char *s = 0;
 
-    if (code == 0 || (s = strchr(dirnames, code)) == 0)
-	_nc_err_abort("Illegal terminfo subdirectory \"%c\"", code);
+    if (code == 0 || code > 255)
+	_nc_err_abort("Illegal terminfo subdirectory \"%02x\"", code);
 
-    if (verified[s - dirnames])
+    if (verified[code])
 	return;
 
-    dir[0] = code;
-    dir[1] = '\0';
+    snprintf(dir, 3, "%02x", code);
     if (make_directory(dir) < 0) {
 	_nc_err_abort("%s/%s: permission denied", _nc_tic_dir(0), dir);
     }
 
-    verified[s - dirnames] = TRUE;
+    verified[code] = TRUE;
 }
 
 /*
@@ -259,7 +257,7 @@
     if (strlen(first_name) > sizeof(filename) - 3)
 	_nc_warning("terminal name too long.");
 
-    sprintf(filename, "%c/%s", first_name[0], first_name);
+    sprintf(filename, "%02x/%s", first_name[0], first_name);
 
     /*
      * Has this primary name been written since the first call to
@@ -300,7 +298,7 @@
 	}
 
 	check_writeable(ptr[0]);
-	sprintf(linkname, "%c/%s", ptr[0], ptr);
+	sprintf(linkname, "%02x/%s", ptr[0], ptr);
 
 	if (strcmp(filename, linkname) == 0) {
 	    _nc_warning("self-synonym ignored");
diff -Nru ./progs/infocmp.c ../ncurses-5.4+hex/progs/infocmp.c
--- ./progs/infocmp.c	2003-10-18 11:01:54.000000000 -0700
+++ ../ncurses-5.4+hex/progs/infocmp.c	2004-11-27 14:23:28.000000000 -0800
@@ -1374,7 +1374,7 @@
 		tname[termcount] = argv[optind];
 
 		if (directory) {
-		    (void) sprintf(tfile[termcount], "%s/%c/%s",
+		    (void) sprintf(tfile[termcount], "%s/%02x/%s",
 				   directory,
 				   *argv[optind], argv[optind]);
 		    if (itrace)