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)