]> Zhao Yanbai Git Server - minix.git/commitdiff
Updating libcurses, libterminfo and terminfo. 36/136/5
authorLionel Sambuc <lionel@minix3.org>
Tue, 4 Dec 2012 10:42:24 +0000 (11:42 +0100)
committerLionel Sambuc <lionel@minix3.org>
Mon, 14 Jan 2013 10:36:26 +0000 (11:36 +0100)
The three are updated together as they are tightly coupled.

Change-Id: I9e1f07b6adc6e8ae10833e6f1402f8472d2d34b8

69 files changed:
commands/less/less/screen.c
commands/tget/tget.c
distrib/sets/lists/minix/mi
docs/UPDATING
lib/libcurses/Makefile
lib/libcurses/acs.c
lib/libcurses/addbytes.c
lib/libcurses/addchnstr.c
lib/libcurses/addnstr.c
lib/libcurses/chgat.c
lib/libcurses/clrtobot.c
lib/libcurses/clrtoeol.c
lib/libcurses/color.c
lib/libcurses/cr_put.c
lib/libcurses/curs_set.c
lib/libcurses/curses.3
lib/libcurses/curses.h
lib/libcurses/curses_chgat.3
lib/libcurses/curses_inch.3
lib/libcurses/curses_input.3
lib/libcurses/curses_print.3
lib/libcurses/curses_private.h
lib/libcurses/curses_screen.3
lib/libcurses/curses_standout.3
lib/libcurses/curses_termcap.3
lib/libcurses/curses_window.3
lib/libcurses/erase.c
lib/libcurses/get_wch.c
lib/libcurses/getch.c
lib/libcurses/getstr.c
lib/libcurses/inchstr.c
lib/libcurses/instr.c
lib/libcurses/keymap.h
lib/libcurses/longname.c [deleted file]
lib/libcurses/meta.c
lib/libcurses/mvwin.c
lib/libcurses/printw.c
lib/libcurses/refresh.c
lib/libcurses/scanw.c
lib/libcurses/setterm.c
lib/libcurses/shlib_version
lib/libcurses/tstp.c
lib/libcurses/tty.c
lib/libterminfo/Makefile
lib/libterminfo/Makefile.hash [new file with mode: 0644]
lib/libterminfo/compile.c
lib/libterminfo/compiled_terms.c [deleted file]
lib/libterminfo/curterm.c
lib/libterminfo/genhash
lib/libterminfo/genterms
lib/libterminfo/genthash
lib/libterminfo/hash.c [deleted file]
lib/libterminfo/minix-config.inc [deleted file]
lib/libterminfo/setupterm.c
lib/libterminfo/shlib_version
lib/libterminfo/term.c
lib/libterminfo/term.h
lib/libterminfo/term_private.h
lib/libterminfo/termcap.3
lib/libterminfo/termcap.c
lib/libterminfo/termcap.h
lib/libterminfo/termcap_hash.c [deleted file]
lib/libterminfo/terminfo.3
lib/libterminfo/terminfo.5.in
lib/libterminfo/tparm.c
releasetools/nbsd_ports
share/terminfo/Makefile
share/terminfo/terminfo
tools/tic/Makefile

index 84d513b70150de2ff39d2242628117f37becc16e..65ce5d79a5355d0be970a1ce6d1576b0fe3e1fa9 100644 (file)
@@ -1337,7 +1337,7 @@ get_term()
  */
 static int costcount;
 
-typedef void (*tputfunc)(int);
+typedef int (*tputfunc)(int);
 
 /*ARGSUSED*/
        static int
index e09009b20e3a04e2d4eea49b5cc01aeb18d7481d..fc1158de3065919fd9f83424ac19e6016ed947b5 100644 (file)
@@ -7,11 +7,6 @@
 #include <string.h>
 #include <termcap.h>
 
-void fputchar(int c)
-{
-       putchar(c);
-}
-
 void usage(void)
 {
        fprintf(stderr,
@@ -70,7 +65,7 @@ int main(int argc, char **argv)
                                excode= 1;
                        } else {
                                excode= 0;
-                               tputs(str, 0, fputchar);
+                               tputs(str, 0, putchar);
                        }
                } else
                if (strcmp(option, "-goto") == 0) {
@@ -85,7 +80,7 @@ int main(int argc, char **argv)
                                excode= 1;
                        } else {
                                excode= 0;
-                               tputs(tgoto(cm, col, line), 0, fputchar);
+                               tputs(tgoto(cm, col, line), 0, putchar);
                        }
                } else
                if (strcmp(option, "-echo") == 0) {
index 60ef01fb9aa7222dc76d155e808ebecab4656026..80bc074463fc6851956071b104607dab74b0f558 100644 (file)
@@ -1,4 +1,5 @@
-.                                      minix-sys
+
+
 ./bin/cat                              minix-sys
 ./bin/cd                               minix-sys
 ./bin/chmod                            minix-sys
@@ -42,6 +43,7 @@
 ./bin/shutdown                         minix-sys
 ./bin/sync                             minix-sys
 ./bin/sysenv                           minix-sys
+./bin/tar                              minix-sys
 ./bin/test                             minix-sys
 ./bin/true                             minix-sys
 ./bin/umask                            minix-sys
 ./boot/minix_default                   minix-sys
 ./boot/minix                           minix-sys
 ./boot                                 minix-sys
+./boot/minix/.temp/kernel              minix-sys
+./boot/minix/.temp                     minix-sys
+./boot/minix/.temp/mod01_ds            minix-sys
+./boot/minix/.temp/mod02_rs            minix-sys
+./boot/minix/.temp/mod03_pm            minix-sys
+./boot/minix/.temp/mod04_sched         minix-sys
+./boot/minix/.temp/mod05_vfs           minix-sys
+./boot/minix/.temp/mod06_memory                minix-sys
+./boot/minix/.temp/mod07_log           minix-sys
+./boot/minix/.temp/mod08_tty           minix-sys
+./boot/minix/.temp/mod09_mfs           minix-sys
+./boot/minix/.temp/mod10_vm            minix-sys
+./boot/minix/.temp/mod11_pfs           minix-sys
+./boot/minix/.temp/mod12_init          minix-sys
 ./dev                                  minix-sys
+./dev/mouse                            minix-sys
 ./etc/boot.cfg.default                 minix-sys
 ./etc/defaults/minix.rc.conf           minix-sys
 ./etc/defaults                         minix-sys
 ./etc/ttys                             minix-sys
 ./etc/utmp                             minix-sys
 ./home                                 minix-sys
+./lib/cpp                              minix-sys
 ./libexec/ld-elf.so.1                  minix-sys
 ./libexec/ld.elf_so                    minix-sys
 ./libexec                              minix-sys
 ./lib                                  minix-sys
-./lib/cpp                              minix-sys
+.                                      minix-sys
 ./mnt                                  minix-sys
+./multiboot/kernel                     minix-sys
+./multiboot                            minix-sys
+./multiboot/mod01_ds                   minix-sys
+./multiboot/mod02_rs                   minix-sys
+./multiboot/mod03_pm                   minix-sys
+./multiboot/mod04_sched                        minix-sys
+./multiboot/mod05_vfs                  minix-sys
+./multiboot/mod06_memory               minix-sys
+./multiboot/mod07_log                  minix-sys
+./multiboot/mod08_tty                  minix-sys
+./multiboot/mod09_mfs                  minix-sys
+./multiboot/mod10_vm                   minix-sys
+./multiboot/mod11_pfs                  minix-sys
+./multiboot/mod12_init                 minix-sys
 ./proc                                 minix-sys
 ./root/.ashrc                          minix-sys
 ./root/.exrc                           minix-sys
 ./usr/bin/bzip2recover                 minix-sys
 ./usr/bin/cal                          minix-sys
 ./usr/bin/cawf                         minix-sys
+./usr/bin/cc                           minix-sys
 ./usr/bin/cdprobe                      minix-sys
 ./usr/bin/checkhier                    minix-sys       obsolete
 ./usr/bin/chfn                         minix-sys
 ./usr/bin/co                           minix-sys
 ./usr/bin/comm                         minix-sys
 ./usr/bin/compress                     minix-sys
+./usr/bin/cpio                         minix-sys
 ./usr/bin/cprofalyze                   minix-sys
 ./usr/bin/crc                          minix-sys
 ./usr/bin/cron                         minix-sys
 ./usr/bin/make                         minix-sys
 ./usr/bin/mandoc                       minix-sys
 ./usr/bin/man                          minix-sys
+./usr/bin/md2                          minix-sys
+./usr/bin/md4                          minix-sys
+./usr/bin/md5                          minix-sys
 ./usr/bin/mesg                         minix-sys
 ./usr/bin/mined                                minix-sys
 ./usr/bin/ministat                     minix-sys
 ./usr/bin/rev                          minix-sys
 ./usr/bin/rget                         minix-sys
 ./usr/bin/rlogin                       minix-sys
+./usr/bin/rmd160                       minix-sys
 ./usr/bin/rotate                       minix-sys
 ./usr/bin/rput                         minix-sys
 ./usr/bin/rsh                          minix-sys
 ./usr/bin/screendump                   minix-sys
 ./usr/bin/sed                          minix-sys
 ./usr/bin/seq                          minix-sys
+./usr/bin/sha1                         minix-sys
 ./usr/bin/shar                         minix-sys
 ./usr/bin/shutdown                     minix-sys
 ./usr/bin/sleep                                minix-sys
 ./usr/bin/sprofdiff                    minix-sys
 ./usr/bin/srccrc                       minix-sys
 ./usr/bin/stat                         minix-sys
+./usr/bin/strip                                minix-sys
 ./usr/bin/stty                         minix-sys
 ./usr/bin/su                           minix-sys
 ./usr/bin/sum                          minix-sys
 ./usr/bin/syslogd                      minix-sys
 ./usr/bin/sz                           minix-sys
 ./usr/bin/tail                         minix-sys
+./usr/bin/tar                          minix-sys
 ./usr/bin/tcpd                         minix-sys
 ./usr/bin/tcpdp                                minix-sys
 ./usr/bin/tcpstat                      minix-sys
 ./usr/bin/uue                          minix-sys
 ./usr/bin/uuencode                     minix-sys
 ./usr/bin/version                      minix-sys
-./usr/bin/vol                          minix-sys
 ./usr/bin/vi                           minix-sys
+./usr/bin/vol                          minix-sys
 ./usr/bin/wc                           minix-sys
 ./usr/bin/whereis                      minix-sys
 ./usr/bin/which                                minix-sys
 ./usr/include/disktab.h                                        minix-sys
 ./usr/include/dlfcn.h                                  minix-sys
 ./usr/include/elfdefinitions.h                         minix-sys
+./usr/include/elf.h                    minix-sys
 ./usr/include/env.h                                    minix-sys
 ./usr/include/err.h                                    minix-sys
 ./usr/include/errno.h                                  minix-sys
 ./usr/include/i386/archtypes.h                                 minix-sys
 ./usr/include/i386/asm.h                                       minix-sys
 ./usr/include/i386/bios.h                                      minix-sys
+./usr/include/i386/bootinfo.h                  minix-sys
 ./usr/include/i386/bswap.h                                     minix-sys
 ./usr/include/i386/byte_swap.h                                 minix-sys
 ./usr/include/i386/cdefs.h                                     minix-sys
 ./usr/include/i386/pci_intel.h                                 minix-sys
 ./usr/include/i386/pci_sis.h                                   minix-sys
 ./usr/include/i386/pci_via.h                                   minix-sys
+./usr/include/i386/pio.h                       minix-sys
 ./usr/include/i386/ports.h                                     minix-sys
 ./usr/include/i386/profile.h                                   minix-sys
+./usr/include/i386/rwlock.h                    minix-sys
 ./usr/include/i386/setjmp.h                                    minix-sys
 ./usr/include/i386/signal.h                                    minix-sys
 ./usr/include/i386/stackframe.h                                        minix-sys
-./usr/include/i386/stdarg.h                                    minix-sys
+./usr/include/i386/stdarg.h                                    minix-sys       obsolete
 ./usr/include/i386/types.h                                     minix-sys
 ./usr/include/i386/vm.h                                        minix-sys
 ./usr/include/i386/vmparam.h                                   minix-sys
 ./usr/include/link.h                                   minix-sys
 ./usr/include/locale.h                                 minix-sys
 ./usr/include/login_cap.h                                      minix-sys
+./usr/include/lwp.h                    minix-sys
 ./usr/include/lzma/base.h                                      minix-sys
 ./usr/include/lzma/bcj.h                                       minix-sys
 ./usr/include/lzma/block.h                                     minix-sys
 ./usr/include/sys/cdefs_aout.h                                 minix-sys
 ./usr/include/sys/cdefs_elf.h                                  minix-sys
 ./usr/include/sys/cdefs.h                                      minix-sys
+./usr/include/sys/condvar.h                    minix-sys
 ./usr/include/sys/ctype_bits.h                                 minix-sys
 ./usr/include/sys/ctype_inline.h                                       minix-sys
 ./usr/include/sys/dirent.h                                     minix-sys
 ./usr/include/sys/featuretest.h                                        minix-sys
 ./usr/include/sys/file.h                                       minix-sys
 ./usr/include/sys/float_ieee754.h                                      minix-sys
+./usr/include/sys/fstypes.h                    minix-sys
 ./usr/include/sys/gcq.h                                        minix-sys
 ./usr/include/sys/gmon.h                                       minix-sys
 ./usr/include/sys/hash.h                                       minix-sys
 ./usr/include/sys/localedef.h                                  minix-sys
 ./usr/include/sys/lock.h                                       minix-sys
 ./usr/include/syslog.h                                 minix-sys
+./usr/include/sys/lwp.h                        minix-sys
 ./usr/include/sys/md4.h                                        minix-sys
 ./usr/include/sys/md5.h                                        minix-sys
 ./usr/include/sys                                      minix-sys
 ./usr/include/sys/reboot.h                                     minix-sys
 ./usr/include/sys/resource.h                                   minix-sys
 ./usr/include/sys/rmd160.h                                     minix-sys
+./usr/include/sys/rwlock.h                     minix-sys
 ./usr/include/sys/select.h                                     minix-sys
 ./usr/include/sys/sem.h                                        minix-sys
 ./usr/include/sys/sha1.h                                       minix-sys
 ./usr/include/sys/signal.h                                     minix-sys
 ./usr/include/sys/sigtypes.h                                   minix-sys
 ./usr/include/sys/socket.h                                     minix-sys
+./usr/include/sys/specificdata.h                       minix-sys
 ./usr/include/sys/statfs.h                                     minix-sys
 ./usr/include/sys/stat.h                                       minix-sys
 ./usr/include/sys/statvfs.h                                    minix-sys
+./usr/include/sys/stdarg.h                     minix-sys
 ./usr/include/sys/stdint.h                                     minix-sys
 ./usr/include/sys/svrctl.h                                     minix-sys
 ./usr/include/sys/sysctl.h                                     minix-sys
 ./usr/include/sys/termios.h                                    minix-sys
 ./usr/include/sys/time.h                                       minix-sys
 ./usr/include/sys/times.h                                      minix-sys
+./usr/include/sys/tls.h                        minix-sys
 ./usr/include/sys/tree.h                                       minix-sys
 ./usr/include/sys/ttycom.h                                     minix-sys
 ./usr/include/sys/ttydefaults.h                                        minix-sys
 ./usr/include/wchar.h                                  minix-sys
 ./usr/include/wctype.h                                 minix-sys
 ./usr/include/wordexp.h                                        minix-sys
+./usr/include/x86/bootinfo.h                   minix-sys
+./usr/include/x86/cpu.h                        minix-sys
 ./usr/include/x86/float.h                                      minix-sys
 ./usr/include/x86/ieeefp.h                                     minix-sys
 ./usr/include/x86/ieee.h                                       minix-sys
 ./usr/include/x86/math.h                                       minix-sys
 ./usr/include/x86                                      minix-sys
 ./usr/include/x86/mutex.h                                      minix-sys
+./usr/include/x86/pio.h                        minix-sys
+./usr/include/x86/rwlock.h                     minix-sys
 ./usr/include/zconf.h                                  minix-sys
 ./usr/include/zlib.h                                   minix-sys
 ./usr/lib/cawf/common                                  minix-sys
 ./usr/lib/cawf/ms.mac                                  minix-sys
 ./usr/lib/compat_minix.pc                                      minix-sys
 ./usr/lib/cpp                                  minix-sys
+./usr/lib/crontab                      minix-sys
 ./usr/lib/crt0.o                                       minix-sys
-./usr/lib/crt1.o                                       minix-sys
+./usr/lib/crt1.o                                       minix-sys       obsolete
 ./usr/lib/crtbegin.o                                   minix-sys
 ./usr/lib/crtbeginS.o                                  minix-sys
 ./usr/lib/crtbeginT.o                                  minix-sys
 ./usr/lib/librefuse.so.0.0                                     minix-sys
 ./usr/lib/librefuse.so.0                                       minix-sys
 ./usr/lib/librefuse.so                                 minix-sys
+./usr/lib/librmt.a                     minix-sys
 ./usr/lib/libsffs.a                                    minix-sys
 ./usr/lib/libsffs_pic.a                                        minix-sys
 ./usr/lib/libsys.a                                     minix-sys
 ./usr/man/man1/make.1                  minix-sys
 ./usr/man/man1/man.1                   minix-sys
 ./usr/man/man1/mandoc.1                        minix-sys
+./usr/man/man1/md2.1                   minix-sys
+./usr/man/man1/md4.1                   minix-sys
+./usr/man/man1/md5.1                   minix-sys
 ./usr/man/man1/mesg.1                  minix-sys
 ./usr/man/man1/ministat.1              minix-sys
 ./usr/man/man1                         minix-sys
 ./usr/man/man1/rget.1                  minix-sys
 ./usr/man/man1/rlogin.1                        minix-sys
 ./usr/man/man1/rm.1                    minix-sys
+./usr/man/man1/rmd160.1                        minix-sys
 ./usr/man/man1/rmdir.1                 minix-sys
 ./usr/man/man1/rsh.1                   minix-sys
 ./usr/man/man1/rz.1                    minix-sys
 ./usr/man/man1/set.1                   minix-sys
 ./usr/man/man1/setvar.1                        minix-sys
 ./usr/man/man1/sh.1                    minix-sys
+./usr/man/man1/sha1.1                  minix-sys
 ./usr/man/man1/shar.1                  minix-sys
 ./usr/man/man1/shift.1                 minix-sys
 ./usr/man/man1/sleep.1                 minix-sys
 ./usr/man/man3/cpuset_set.3                                    minix-sys
 ./usr/man/man3/cpuset_size.3                                   minix-sys
 ./usr/man/man3/cpuset_zero.3                                   minix-sys
+./usr/man/man3/cpxattr.3                       minix-sys
 ./usr/man/man3/creal.3                                 minix-sys
 ./usr/man/man3/crealf.3                                        minix-sys
 ./usr/man/man3/creall.3                                        minix-sys
 ./usr/man/man3/dbm_open.3                                      minix-sys
 ./usr/man/man3/dbm_store.3                                     minix-sys
 ./usr/man/man3/dbopen.3                                        minix-sys
+./usr/man/man3/define_key.3                                    minix-sys
 ./usr/man/man3/def_prog_mode.3                                 minix-sys
 ./usr/man/man3/def_shell_mode.3                                        minix-sys
 ./usr/man/man3/dehumanize_number.3                                     minix-sys
 ./usr/man/man3/expf.3                                  minix-sys
 ./usr/man/man3/expm1.3                                 minix-sys
 ./usr/man/man3/expm1f.3                                        minix-sys
-./usr/man/man3/extattr.3                                       minix-sys
+./usr/man/man3/extattr.3                                       minix-sys       obsolete
+./usr/man/man3/extattr_copy_fd.3                       minix-sys
+./usr/man/man3/extattr_copy_file.3                     minix-sys
+./usr/man/man3/extattr_copy_link.3                     minix-sys
 ./usr/man/man3/extattr_namespace_to_string.3                                   minix-sys
 ./usr/man/man3/extattr_string_to_namespace.3                                   minix-sys
 ./usr/man/man3/fabs.3                                  minix-sys
 ./usr/man/man3/fabsf.3                                 minix-sys
 ./usr/man/man3/fclose.3                                        minix-sys
+./usr/man/man3/fcpxattr.3                      minix-sys
 ./usr/man/man3/fdim.3                                  minix-sys
 ./usr/man/man3/fdimf.3                                 minix-sys
 ./usr/man/man3/fdiml.3                                 minix-sys
 ./usr/man/man3/fparseln.3                                      minix-sys
 ./usr/man/man3/fpclassify.3                                    minix-sys
 ./usr/man/man3/fpgetmask.3                                     minix-sys
+./usr/man/man3/fpgetprec.3                     minix-sys
 ./usr/man/man3/fpgetround.3                                    minix-sys
 ./usr/man/man3/fpgetsticky.3                                   minix-sys
 ./usr/man/man3/fp_nquery.3                                     minix-sys
 ./usr/man/man3/fp_resstat.3                                    minix-sys
 ./usr/man/man3/fprintf.3                                       minix-sys
 ./usr/man/man3/fpsetmask.3                                     minix-sys
+./usr/man/man3/fpsetprec.3                     minix-sys
 ./usr/man/man3/fpsetround.3                                    minix-sys
 ./usr/man/man3/fpsetsticky.3                                   minix-sys
 ./usr/man/man3/fpurge.3                                        minix-sys
 ./usr/man/man3/freeifaddrs.3                                   minix-sys
 ./usr/man/man3/freopen.3                                       minix-sys
 ./usr/man/man3/frexp.3                                 minix-sys
+./usr/man/man3/fropen2.3                       minix-sys
 ./usr/man/man3/fropen.3                                        minix-sys
 ./usr/man/man3/fscanf.3                                        minix-sys
 ./usr/man/man3/fseek.3                                 minix-sys
 ./usr/man/man3/ftw.3                                   minix-sys
 ./usr/man/man3/fullname.3                                      minix-sys
 ./usr/man/man3/funlockfile.3                                   minix-sys
+./usr/man/man3/funopen2.3                      minix-sys
 ./usr/man/man3/funopen.3                                       minix-sys
 ./usr/man/man3/fwide.3                                 minix-sys
+./usr/man/man3/fwopen2.3                       minix-sys
 ./usr/man/man3/fwopen.3                                        minix-sys
 ./usr/man/man3/fwprintf.3                                      minix-sys
 ./usr/man/man3/fwrite.3                                        minix-sys
 ./usr/man/man3/getbegx.3                                       minix-sys
 ./usr/man/man3/getbegy.3                                       minix-sys
 ./usr/man/man3/getbkgd.3                                       minix-sys
-./usr/man/man3/getbootfile.3                                   minix-sys
+./usr/man/man3/getbootfile.3                                   minix-sys       obsolete
 ./usr/man/man3/getbsize.3                                      minix-sys
 ./usr/man/man3/getc.3                                  minix-sys
-./usr/man/man3/getcap.3                                        minix-sys
+./usr/man/man3/getcap.3                                        minix-sys       obsolete
 ./usr/man/man3/getch.3                                 minix-sys
 ./usr/man/man3/getchar.3                                       minix-sys
 ./usr/man/man3/getchar_unlocked.3                                      minix-sys
 ./usr/man/man3/getpary.3                                       minix-sys
 ./usr/man/man3/getparyx.3                                      minix-sys
 ./usr/man/man3/getpass.3                                       minix-sys
+./usr/man/man3/getpassfd.3                     minix-sys
+./usr/man/man3/getpass_r.3                     minix-sys
 ./usr/man/man3/getpeereid.3                                    minix-sys
 ./usr/man/man3/getprogname.3                                   minix-sys
 ./usr/man/man3/getprotobyname.3                                        minix-sys
 ./usr/man/man3/has_ic.3                                        minix-sys
 ./usr/man/man3/has_il.3                                        minix-sys
 ./usr/man/man3/hcreate.3                                       minix-sys
+./usr/man/man3/hcreate_r.3                     minix-sys
 ./usr/man/man3/hdestroy.3                                      minix-sys
+./usr/man/man3/hdestroy_r.3                    minix-sys
 ./usr/man/man3/heapsort.3                                      minix-sys
 ./usr/man/man3/herror.3                                        minix-sys
 ./usr/man/man3/hesiod.3                                        minix-sys       obsolete
 ./usr/man/man3/hline.3                                 minix-sys
 ./usr/man/man3/hostalias.3                                     minix-sys
 ./usr/man/man3/hsearch.3                                       minix-sys
+./usr/man/man3/hsearch_r.3                     minix-sys
 ./usr/man/man3/hstrerror.3                                     minix-sys
 ./usr/man/man3/htonl.3                                 minix-sys
 ./usr/man/man3/htons.3                                 minix-sys
 ./usr/man/man3/l64a_r.3                                        minix-sys
 ./usr/man/man3/labs.3                                  minix-sys
 ./usr/man/man3/lcong48.3                                       minix-sys
+./usr/man/man3/lcpxattr.3                      minix-sys
 ./usr/man/man3/ldexp.3                                 minix-sys
 ./usr/man/man3/ldiv.3                                  minix-sys
 ./usr/man/man3/leaveok.3                                       minix-sys
 ./usr/man/man3/MD2Init.3                                       minix-sys
 ./usr/man/man3/MD2Transform.3                                  minix-sys
 ./usr/man/man3/MD2Update.3                                     minix-sys
+./usr/man/man3/md4.3                   minix-sys
+./usr/man/man3/MD4Data.3                       minix-sys
+./usr/man/man3/MD4End.3                        minix-sys
+./usr/man/man3/MD4File.3                       minix-sys
+./usr/man/man3/MD4Final.3                      minix-sys
+./usr/man/man3/MD4Init.3                       minix-sys
+./usr/man/man3/MD4Update.3                     minix-sys
+./usr/man/man3/md5.3                   minix-sys
+./usr/man/man3/MD5Data.3                       minix-sys
+./usr/man/man3/MD5End.3                        minix-sys
+./usr/man/man3/MD5File.3                       minix-sys
+./usr/man/man3/MD5Final.3                      minix-sys
+./usr/man/man3/MD5Init.3                       minix-sys
+./usr/man/man3/MD5Update.3                     minix-sys
 ./usr/man/man3/mdoc.3                                  minix-sys
 ./usr/man/man3/membar_consumer.3                                       minix-sys
 ./usr/man/man3/membar_enter.3                                  minix-sys
 ./usr/man/man3/ntoa.3                                  minix-sys
 ./usr/man/man3/ntohl.3                                 minix-sys
 ./usr/man/man3/ntohs.3                                 minix-sys
+./usr/man/man3/nvis.3                  minix-sys
 ./usr/man/man3/offtime.3                                       minix-sys
 ./usr/man/man3/offtime_r.3                                     minix-sys
 ./usr/man/man3/opendir.3                                       minix-sys
 ./usr/man/man3/posix2time_z.3                                  minix-sys
 ./usr/man/man3/posix_memalign.3                                        minix-sys
 ./usr/man/man3/posix_openpt.3                                  minix-sys
+./usr/man/man3/posix_spawn.3                   minix-sys
+./usr/man/man3/posix_spawnattr_destroy.3                       minix-sys
+./usr/man/man3/posix_spawnattr_getflags.3                      minix-sys
+./usr/man/man3/posix_spawnattr_getpgroup.3                     minix-sys
+./usr/man/man3/posix_spawnattr_getschedparam.3                 minix-sys
+./usr/man/man3/posix_spawnattr_getschedpolicy.3                        minix-sys
+./usr/man/man3/posix_spawnattr_getsigdefault.3                 minix-sys
+./usr/man/man3/posix_spawnattr_getsigmask.3                    minix-sys
+./usr/man/man3/posix_spawnattr_init.3                  minix-sys
+./usr/man/man3/posix_spawnattr_setflags.3                      minix-sys
+./usr/man/man3/posix_spawnattr_setpgroup.3                     minix-sys
+./usr/man/man3/posix_spawnattr_setschedparam.3                 minix-sys
+./usr/man/man3/posix_spawnattr_setschedpolicy.3                        minix-sys
+./usr/man/man3/posix_spawnattr_setsigdefault.3                 minix-sys
+./usr/man/man3/posix_spawnattr_setsigmask.3                    minix-sys
+./usr/man/man3/posix_spawn_file_actions_addclose.3                     minix-sys
+./usr/man/man3/posix_spawn_file_actions_adddup2.3                      minix-sys
+./usr/man/man3/posix_spawn_file_actions_addopen.3                      minix-sys
+./usr/man/man3/posix_spawn_file_actions_destroy.3                      minix-sys
+./usr/man/man3/posix_spawn_file_actions_init.3                 minix-sys
+./usr/man/man3/posix_spawnp.3                  minix-sys
 ./usr/man/man3/pow.3                                   minix-sys
 ./usr/man/man3/powf.3                                  minix-sys
 ./usr/man/man3/p_query.3                                       minix-sys
 ./usr/man/man3/RMD160Init.3                                    minix-sys
 ./usr/man/man3/RMD160Transform.3                                       minix-sys
 ./usr/man/man3/RMD160Update.3                                  minix-sys
+./usr/man/man3/rmtops.3                        minix-sys
 ./usr/man/man3/round.3                                 minix-sys
 ./usr/man/man3/roundf.3                                        minix-sys
 ./usr/man/man3/rresvport.3                                     minix-sys
 ./usr/man/man3/snprintb.3                                      minix-sys
 ./usr/man/man3/snprintb_m.3                                    minix-sys
 ./usr/man/man3/snprintf.3                                      minix-sys
+./usr/man/man3/snvis.3                 minix-sys
 ./usr/man/man3/sockatmark.3                                    minix-sys
 ./usr/man/man3/sprintf.3                                       minix-sys
 ./usr/man/man3/sqrt.3                                  minix-sys
 ./usr/man/man3/strncpy.3                                       minix-sys
 ./usr/man/man3/strndup.3                                       minix-sys
 ./usr/man/man3/strnlen.3                                       minix-sys
+./usr/man/man3/strnunvis.3                     minix-sys
+./usr/man/man3/strnunvisx.3                    minix-sys
+./usr/man/man3/strnvis.3                       minix-sys
+./usr/man/man3/strnvisx.3                      minix-sys
 ./usr/man/man3/strpbrk.3                                       minix-sys
 ./usr/man/man3/strptime.3                                      minix-sys
 ./usr/man/man3/strrchr.3                                       minix-sys
 ./usr/man/man3/strsep.3                                        minix-sys
 ./usr/man/man3/strsignal.3                                     minix-sys
+./usr/man/man3/strsnvis.3                      minix-sys
+./usr/man/man3/strsnvisx.3                     minix-sys
 ./usr/man/man3/strspn.3                                        minix-sys
 ./usr/man/man3/strstr.3                                        minix-sys
 ./usr/man/man3/strsuftoll.3                                    minix-sys
 ./usr/man/man3/tempnam.3                                       minix-sys
 ./usr/man/man3/termcap.3                                       minix-sys
 ./usr/man/man3/terminfo.3                                      minix-sys
+./usr/man/man3/termname.3                                      minix-sys
 ./usr/man/man3/tfind.3                                 minix-sys
 ./usr/man/man3/tgetent.3                                       minix-sys
 ./usr/man/man3/tgetflag.3                                      minix-sys
 ./usr/man/man3/timeout.3                                       minix-sys
 ./usr/man/man3/times.3                                 minix-sys
 ./usr/man/man3/timezone.3                                      minix-sys
+./usr/man/man3/tiparm.3                                        minix-sys
 ./usr/man/man3/ti_putp.3                                       minix-sys
 ./usr/man/man3/ti_puts.3                                       minix-sys
 ./usr/man/man3/ti_setupterm.3                                  minix-sys
+./usr/man/man3/ti_tiparm.3                                     minix-sys
 ./usr/man/man3/tmpfile.3                                       minix-sys
 ./usr/man/man3/tmpnam.3                                        minix-sys
 ./usr/man/man3/toascii.3                                       minix-sys
 ./usr/man/man3/towctrans.3                                     minix-sys
 ./usr/man/man3/towlower.3                                      minix-sys
 ./usr/man/man3/towupper.3                                      minix-sys
-./usr/man/man3/t_parm.3                                        minix-sys
 ./usr/man/man3/tparm.3                                 minix-sys
+./usr/man/man3/t_parm.3                                        minix-sys       obsolete
 ./usr/man/man3/tputs.3                                 minix-sys
 ./usr/man/man3/trunc.3                                 minix-sys
 ./usr/man/man3/truncf.3                                        minix-sys
 ./usr/man/man3/ttyname_r.3                                     minix-sys
 ./usr/man/man3/ttyslot.3                                       minix-sys
 ./usr/man/man3/ttyunlock.3                                     minix-sys
-./usr/man/man3/t_vparm.3                                       minix-sys
+./usr/man/man3/t_vparm.3                                       minix-sys       obsolete
 ./usr/man/man3/twalk.3                                 minix-sys
 ./usr/man/man3/tzalloc.3                                       minix-sys
 ./usr/man/man3/tzfree.3                                        minix-sys
 ./usr/pkg                                      minix-sys
 ./usr/preserve                                 minix-sys
 ./usr/run                                      minix-sys
-./usr/sbin                                     minix-sys
 ./usr/sbin/acpi                                minix-sys
 ./usr/sbin/amddev                      minix-sys
 ./usr/sbin/atl2                                minix-sys
 ./usr/sbin/lance                       minix-sys
 ./usr/sbin/log                         minix-sys
 ./usr/sbin/memory                      minix-sys
+./usr/sbin                                     minix-sys
 ./usr/sbin/mkproto                     minix-sys
+./usr/sbin/mmc                         minix-sys
 ./usr/sbin/mtree                       minix-sys
 ./usr/sbin/orinoco                     minix-sys
 ./usr/sbin/pci                         minix-sys
 ./usr/share/doc/psd/19.curses/ex1.c    minix-sys
 ./usr/share/doc/psd/19.curses/ex2.c    minix-sys
 ./usr/share/doc/psd/19.curses/fns.doc  minix-sys
+./usr/share/doc/psd/19.curses          inix-sys
 ./usr/share/doc/psd/19.curses/intro.0  minix-sys
 ./usr/share/doc/psd/19.curses/intro.1  minix-sys
 ./usr/share/doc/psd/19.curses/intro.2  minix-sys
 ./usr/share/doc/psd/19.curses/macros   minix-sys
 ./usr/share/doc/psd/19.curses/Makefile minix-sys
 ./usr/share/doc/psd/19.curses/Master   minix-sys
-./usr/share/doc/psd/19.curses          inix-sys
 ./usr/share/doc/psd/19.curses/twinkle1.c       minix-sys
 ./usr/share/doc/psd/19.curses/twinkle2.c       minix-sys
 ./usr/share/doc/psd/19.curses/win_st.c minix-sys
 ./usr/share/mk/pkgsrchooks.mk          minix-sys       obsolete
 ./usr/share/mk/sys.mk                  minix-sys
 ./usr/share/terminfo                   minix-sys
-./usr/share/terminfo/terminfo.db       minix-sys
+./usr/share/terminfo/terminfo.cdb      minix-sys
+./usr/share/terminfo/terminfo.db       minix-sys       obsolete
 ./usr/share/terminfo/terminfo          minix-sys
 ./usr/share/zoneinfo/Africa/Abidjan    minix-sys
 ./usr/share/zoneinfo/Africa/Accra      minix-sys
 ./usr/share/zoneinfo/Atlantic/Cape_Verde       minix-sys
 ./usr/share/zoneinfo/Atlantic/Faeroe   minix-sys
 ./usr/share/zoneinfo/Atlantic/Faroe    minix-sys
+./usr/share/zoneinfo/Atlantic          inix-sys
 ./usr/share/zoneinfo/Atlantic/Jan_Mayen        minix-sys
 ./usr/share/zoneinfo/Atlantic/Madeira  minix-sys
-./usr/share/zoneinfo/Atlantic          inix-sys
 ./usr/share/zoneinfo/Atlantic/Reykjavik        minix-sys
 ./usr/share/zoneinfo/Atlantic/South_Georgia    minix-sys
 ./usr/share/zoneinfo/Atlantic/Stanley  minix-sys
 ./usr/var                              minix-sys
 ./usr/var/run                          minix-sys
 ./var/db                               minix-sys
-./var/db/obsolete                      minix-sys
 ./var/db/obsolete/minix                        minix-sys
+./var/db/obsolete                      minix-sys
+./var/log                              minix-sys
 ./var                                  minix-sys
 ./var/run                              minix-sys
-./boot/minix/.temp                     minix-sys
-./boot/minix/.temp/kernel              minix-sys
-./boot/minix/.temp/mod01_ds            minix-sys
-./boot/minix/.temp/mod02_rs            minix-sys
-./boot/minix/.temp/mod03_pm            minix-sys
-./boot/minix/.temp/mod04_sched         minix-sys
-./boot/minix/.temp/mod05_vfs           minix-sys
-./boot/minix/.temp/mod06_memory                minix-sys
-./boot/minix/.temp/mod07_log           minix-sys
-./boot/minix/.temp/mod08_tty           minix-sys
-./boot/minix/.temp/mod09_mfs           minix-sys
-./boot/minix/.temp/mod10_vm            minix-sys
-./boot/minix/.temp/mod11_pfs           minix-sys
-./boot/minix/.temp/mod12_init          minix-sys
-
-./multiboot                            minix-sys
-./multiboot/kernel                     minix-sys
-./multiboot/mod01_ds                   minix-sys
-./multiboot/mod02_rs                   minix-sys
-./multiboot/mod03_pm                   minix-sys
-./multiboot/mod04_sched                        minix-sys
-./multiboot/mod05_vfs                  minix-sys
-./multiboot/mod06_memory               minix-sys
-./multiboot/mod07_log                  minix-sys
-./multiboot/mod08_tty                  minix-sys
-./multiboot/mod09_mfs                  minix-sys
-./multiboot/mod10_vm                   minix-sys
-./multiboot/mod11_pfs                  minix-sys
-./multiboot/mod12_init                 minix-sys
-./bin/tar                              minix-sys
-./usr/bin/tar                          minix-sys
-./usr/bin/cpio                         minix-sys
-./usr/lib/librmt.a                     minix-sys
-./usr/man/man3/rmtops.3                        minix-sys
-
-./usr/bin/md2                          minix-sys
-./usr/bin/md4                          minix-sys
-./usr/bin/md5                          minix-sys
-./usr/bin/rmd160                       minix-sys
-./usr/bin/sha1                         minix-sys
-./usr/man/man1/md2.1                   minix-sys
-./usr/man/man1/md4.1                   minix-sys
-./usr/man/man1/md5.1                   minix-sys
-./usr/man/man1/rmd160.1                        minix-sys
-./usr/man/man1/sha1.1                  minix-sys
-./usr/sbin/mmc                         minix-sys
-./usr/bin/cc                           minix-sys
-./usr/bin/strip                                minix-sys
-./usr/lib/crontab                      minix-sys
-./var/log                              minix-sys
 ./var/tmp                              minix-sys
-./dev/mouse                            minix-sys
index 1c7cb620f63946069a843c20ead3e8e931b6cd9e..4b0d8a5500ef645643cbfe926736ca1aa35730ac 100644 (file)
@@ -8,6 +8,14 @@
 
        Then do a "make build".
 
+20121205:
+       Following the terminfo update, some new tools are now used during 
+       the build. Execute the following to install them:
+       # make -C usr.bin/nbperf all install
+       # make -C usr.bin/lorder all install
+       # make -C usr.bin/join all install
+       # make -C usr.bin/tic all install
+
 20121205:
        The tsort tool has been also upgraded and is now also used during
        the build:
index c28a8cc3ab435711804a01db3b2e178f6f1caa4f..aee5f016398cfece7d8d0d658dfc6f4e758a7ece 100644 (file)
@@ -1,4 +1,4 @@
-#      $NetBSD: Makefile,v 1.64 2010/02/03 15:34:40 roy Exp $
+#      $NetBSD: Makefile,v 1.68 2012/04/21 14:39:35 roy Exp $
 #      @(#)Makefile    8.2 (Berkeley) 1/2/94
 
 .include <bsd.own.mk>
@@ -69,6 +69,7 @@ MLINKS+= curses_addch.3 addch.3 curses_addchstr.3 addchnstr.3 \
         curses_clear.3 clrtobot.3 curses_clear.3 clrtoeol.3 \
         curses_color.3 color_content.3 curses_attributes.3 color_set.3 \
         curses_window.3 copywin.3 curses_tty.3 curs_set.3 \
+        curses_input.3 define_key.3 \
         curses_tty.3 delay_output.3  curses_tty.3 def_prog_mode.3 \
         curses_tty.3 def_shell_mode.3 curses_delch.3 delch.3 \
         curses_deleteln.3 deleteln.3 curses_screen.3 delscreen.3 \
@@ -80,7 +81,7 @@ MLINKS+= curses_addch.3 addch.3 curses_addchstr.3 addchnstr.3 \
         curses_tty.3 flash.3 curses_tty.3 flushinp.3 \
         curses_refresh.3 flushok.3 \
         curses_termcap.3 fullname.3 curses_attributes.3 getattrs.3  \
-        curses_background.3 getbkgd.3 curses_termcap.3 getcap.3 \
+        curses_background.3 getbkgd.3 \
         curses_input.3 getch.3 curses_cursor.3 getcury.3 \
         curses_cursor.3 getcurx.3 curses_cursor.3 getbegy.3 \
         curses_cursor.3 getbegx.3 curses_cursor.3 getmaxx.3 \
@@ -103,7 +104,7 @@ MLINKS+= curses_addch.3 addch.3 curses_addchstr.3 addchnstr.3 \
         curses_touch.3 is_wintouched.3 curses_screen.3 isendwin.3 \
         curses_keyname.3 keyname.3 \
         curses_input.3 keypad.3 curses_tty.3 killchar.3 \
-        curses_refresh.3 leaveok.3 curses_termcap.3 longname.3 \
+        curses_refresh.3 leaveok.3 \
         curses_tty.3 meta.3 curses_cursor.3 move.3 \
         curses_addch.3 mvaddch.3 curses_addchstr.3 mvaddchnstr.3 \
         curses_addchstr.3 mvaddchstr.3 curses_addstr.3 mvaddnstr.3 \
index 87e02db073523d10d117f62885c31880e9ed89b9..39815179dbe9b1ef6f67e64ca464712c9eb7436d 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: acs.c,v 1.19 2010/02/25 10:56:24 drochner Exp $        */
+/*     $NetBSD: acs.c,v 1.20 2012/04/21 12:27:27 roy Exp $     */
 
 /*
  * Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: acs.c,v 1.19 2010/02/25 10:56:24 drochner Exp $");
+__RCSID("$NetBSD: acs.c,v 1.20 2012/04/21 12:27:27 roy Exp $");
 #endif                         /* not lint */
 
 #include "curses.h"
@@ -49,7 +49,7 @@ cchar_t _wacs_char[ NUM_ACS ];
 
 /*
  * __init_acs --
- *     Fill in the ACS characters.  The 'ac' termcap entry is a list of
+ *     Fill in the ACS characters.  The 'acs_chars' terminfo entry is a list of
  *     character pairs - ACS definition then terminal representation.
  */
 void
@@ -138,7 +138,7 @@ _cursesi_reset_acs(SCREEN *screen)
 #ifdef HAVE_WCHAR
 /*
  * __init_wacs --
- *     Fill in the ACS characters.  The 'ac' termcap entry is a list of
+ *     Fill in the ACS characters.  The 'acs_chars' terminfo entry is a list of
  *     character pairs - ACS definition then terminal representation.
  */
 void
index 971772d222277314ddbb45e0edce7f5f8c6c20f4..d467f89c8dcce3319864396c6538bf6d8d0117ed 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: addbytes.c,v 1.38 2010/12/16 17:42:28 wiz Exp $        */
+/*     $NetBSD: addbytes.c,v 1.39 2011/07/01 01:19:33 joerg Exp $      */
 
 /*
  * Copyright (c) 1987, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)addbytes.c 8.4 (Berkeley) 5/4/94";
 #else
-__RCSID("$NetBSD: addbytes.c,v 1.38 2010/12/16 17:42:28 wiz Exp $");
+__RCSID("$NetBSD: addbytes.c,v 1.39 2011/07/01 01:19:33 joerg Exp $");
 #endif
 #endif                         /* not lint */
 
index a293cbcfa33abdc5b6742043ffa4e9d091bbc2a7..3c7e1a02fd0c71252fdadbd5229338688aa63e66 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: addchnstr.c,v 1.4 2008/04/28 20:23:01 martin Exp $     */
+/*     $NetBSD: addchnstr.c,v 1.5 2012/09/28 06:00:39 blymn Exp $      */
 
 /*
  * Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: addchnstr.c,v 1.4 2008/04/28 20:23:01 martin Exp $");
+__RCSID("$NetBSD: addchnstr.c,v 1.5 2012/09/28 06:00:39 blymn Exp $");
 #endif                         /* not lint */
 
 #include <stdlib.h>
@@ -122,8 +122,11 @@ mvwaddchnstr(WINDOW *win, int y, int x, const chtype *chstr, int n)
 /*
  * waddchnstr --
  *     Add a string (at most n characters) to the given window
- *     starting at (_cury, _curx).  If n is negative, add the
- *     entire string.
+ *     starting at (_cury, _curx) until the end of line is reached or
+ *      n characters have been added.  If n is negative, add as much
+ *     of the string that will fit on the current line.  SUSv2 says
+ *      that the addchnstr family does not wrap and strings are truncated
+ *      to the RHS of the window.
  */
 int
 waddchnstr(WINDOW *win, const chtype *chstr, int n)
@@ -144,6 +147,10 @@ waddchnstr(WINDOW *win, const chtype *chstr, int n)
        else
                for (chp = chstr, len = 0; *chp++; ++len);
 
+       /* check if string is too long for current location */
+       if (len > (win->maxx - win->curx))
+               len = win->maxx - win->curx;
+
        if ((ocp = malloc(len + 1)) == NULL)
                return ERR;
        chp = chstr;
index 33c4c832d7d679f65dcf3cd905b75f0d69f45b2a..b332297541266e2f6caaf3a1fd670469018d9f68 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: addnstr.c,v 1.12 2007/05/28 15:01:54 blymn Exp $       */
+/*     $NetBSD: addnstr.c,v 1.13 2012/09/28 06:07:05 blymn Exp $       */
 
 /*
  * Copyright (c) 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)addnstr.c  8.2 (Berkeley) 5/4/94";
 #else
-__RCSID("$NetBSD: addnstr.c,v 1.12 2007/05/28 15:01:54 blymn Exp $");
+__RCSID("$NetBSD: addnstr.c,v 1.13 2012/09/28 06:07:05 blymn Exp $");
 #endif
 #endif                         /* not lint */
 
@@ -146,10 +146,17 @@ waddnstr(WINDOW *win, const char *s, int n)
         * BSD curses: if (n > 0) then "at most n", else "len = strlen(s)"
         * ncurses: if (n >= 0) then "at most n", else "len = strlen(s)"
         * XCURSES: if (n != -1) then "at most n", else "len = strlen(s)"
+        * 
+        * Also SUSv2 says these functions do not wrap nor change the
+        * cursor position.
         */
        if (n >= 0)
                for (p = s, len = 0; n-- && *p++; ++len);
        else
                len = strlen(s);
-       return (waddbytes(win, s, (int) len));
+       
+       if (len > (win->maxx - win->curx))
+               len = win->maxx - win->curx;
+
+       return(waddbytes(win, s, (int) len));
 }
index 5a2c42bafb15f416df3bfb9ca49867ac05013b96..ce81033e2fb2a2f11d5ffa1007b5917860fa13d4 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: chgat.c,v 1.4 2009/07/22 16:57:14 roy Exp $    */
+/*     $NetBSD: chgat.c,v 1.5 2012/09/28 06:05:19 blymn Exp $  */
 
 /*
  * Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: chgat.c,v 1.4 2009/07/22 16:57:14 roy Exp $");
+__RCSID("$NetBSD: chgat.c,v 1.5 2012/09/28 06:05:19 blymn Exp $");
 
 #include "curses.h"
 #include "curses_private.h"
@@ -71,6 +71,11 @@ mvwchgat(WINDOW *win , int y, int x, int count, attr_t attr, short color,
        if (count < 0 || count > win->maxx - x)
                count = win->maxx - x;
 
+#ifdef DEBUG
+       __CTRACE(__CTRACE_ATTR, "mvwchgat: x: %d y: %d count: %d attr: 0x%x "
+                "color pair %d\n", x, y, count, (attr & ~__COLOR),
+                PAIR_NUMBER(color));
+#endif
        lp = win->alines[y];
        lc = &lp->line[x];
 
index 4a2d659f4f97511869d39f5f817e0183d378f8d2..3ffccc5ff8c02a7b8434eae42a80f7a471837cf0 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: clrtobot.c,v 1.21 2009/07/22 16:57:14 roy Exp $        */
+/*     $NetBSD: clrtobot.c,v 1.22 2012/02/19 19:38:13 christos Exp $   */
 
 /*
  * Copyright (c) 1981, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)clrtobot.c 8.2 (Berkeley) 5/4/94";
 #else
-__RCSID("$NetBSD: clrtobot.c,v 1.21 2009/07/22 16:57:14 roy Exp $");
+__RCSID("$NetBSD: clrtobot.c,v 1.22 2012/02/19 19:38:13 christos Exp $");
 #endif
 #endif                         /* not lint */
 
@@ -77,8 +77,8 @@ wclrtobot(WINDOW *win)
                starty = win->cury;
                startx = win->curx;
        }
-       if (__using_color && win != curscr)
-               attr = win->battr & __COLOR;
+       if (win != curscr)
+               attr = win->battr & __ATTRIBUTES;
        else
                attr = 0;
        for (y = starty; y < win->maxy; y++) {
@@ -89,12 +89,15 @@ wclrtobot(WINDOW *win)
                        if (sp->ch != win->bch || sp->attr != attr) {
 #else
                        if (sp->ch != (wchar_t)btowc((int) win->bch) ||
-                           (sp->attr & WA_ATTRIBUTES) != 0 || sp->nsp) {
+                           (sp->attr & WA_ATTRIBUTES) != attr || sp->nsp) {
 #endif /* HAVE_WCHAR */
                                maxx = sp;
                                if (minx == -1)
                                        minx = (int)(sp - win->alines[y]->line);
-                               sp->attr = attr;
+                               if (sp->attr & __ALTCHARSET)
+                                       sp->attr = attr | __ALTCHARSET;
+                               else
+                                       sp->attr = attr;
 #ifdef HAVE_WCHAR
                                sp->ch = ( wchar_t )btowc(( int ) win->bch);
                                if (_cursesi_copy_nsp(win->bnsp, sp) == ERR)
index d7d2a57b91594ce56823c82345d1cee5b7a14056..7daccbfc1505dc6165b77ffb4ed0575e9b8f48ee 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: clrtoeol.c,v 1.25 2009/07/22 16:57:14 roy Exp $        */
+/*     $NetBSD: clrtoeol.c,v 1.26 2012/02/19 19:38:13 christos Exp $   */
 
 /*
  * Copyright (c) 1981, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)clrtoeol.c 8.2 (Berkeley) 5/4/94";
 #else
-__RCSID("$NetBSD: clrtoeol.c,v 1.25 2009/07/22 16:57:14 roy Exp $");
+__RCSID("$NetBSD: clrtoeol.c,v 1.26 2012/02/19 19:38:13 christos Exp $");
 #endif
 #endif                         /* not lint */
 
@@ -82,8 +82,8 @@ wclrtoeol(WINDOW *win)
        end = &win->alines[y]->line[win->maxx];
        minx = -1;
        maxx = &win->alines[y]->line[x];
-       if (__using_color && win != curscr)
-               attr = win->battr & __COLOR;
+       if (win != curscr)
+               attr = win->battr & __ATTRIBUTES;
        else
                attr = 0;
        for (sp = maxx; sp < end; sp++)
@@ -97,7 +97,7 @@ wclrtoeol(WINDOW *win)
                        maxx = sp;
                        if (minx == -1)
                                minx = (int) (sp - win->alines[y]->line);
-                       sp->attr = attr;
+                       sp->attr = attr | (sp->attr & __ALTCHARSET);
 #ifdef HAVE_WCHAR
                        sp->ch = ( wchar_t )btowc(( int ) win->bch);
                        if (_cursesi_copy_nsp(win->bnsp, sp) == ERR)
index 36bb6ae416e055e2acc925a4447580e69cf45898..5f3976fdd644e59486a7ede663be7fcac4c26e28 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: color.c,v 1.37 2011/01/06 11:29:40 blymn Exp $ */
+/*     $NetBSD: color.c,v 1.38 2011/10/03 12:32:15 roy Exp $   */
 
 /*
  * Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: color.c,v 1.37 2011/01/06 11:29:40 blymn Exp $");
+__RCSID("$NetBSD: color.c,v 1.38 2011/10/03 12:32:15 roy Exp $");
 #endif                         /* not lint */
 
 #include "curses.h"
@@ -536,12 +536,12 @@ __set_color( /*ARGSUSED*/ WINDOW *win, attr_t attr)
                    _cursesi_screen->colour_pairs[pair].back < 0)
                        __unset_color(curscr);
                if (_cursesi_screen->colour_pairs[pair].fore >= 0)
-                       tputs(vtparm(t_set_a_foreground(_cursesi_screen->term),
-                           _cursesi_screen->colour_pairs[pair].fore),
+                       tputs(tiparm(t_set_a_foreground(_cursesi_screen->term),
+                           (int)_cursesi_screen->colour_pairs[pair].fore),
                            0, __cputchar);
                if (_cursesi_screen->colour_pairs[pair].back >= 0)
-                       tputs(vtparm(t_set_a_background(_cursesi_screen->term),
-                           _cursesi_screen->colour_pairs[pair].back),
+                       tputs(tiparm(t_set_a_background(_cursesi_screen->term),
+                           (int)_cursesi_screen->colour_pairs[pair].back),
                            0, __cputchar);
                break;
        case COLOR_HP:
@@ -555,12 +555,12 @@ __set_color( /*ARGSUSED*/ WINDOW *win, attr_t attr)
                    _cursesi_screen->colour_pairs[pair].back < 0)
                        __unset_color(curscr);
                if (_cursesi_screen->colour_pairs[pair].fore >= 0)
-                       tputs(vtparm(t_set_foreground(_cursesi_screen->term),
-                           _cursesi_screen->colour_pairs[pair].fore),
+                       tputs(tiparm(t_set_foreground(_cursesi_screen->term),
+                           (int)_cursesi_screen->colour_pairs[pair].fore),
                            0, __cputchar);
                if (_cursesi_screen->colour_pairs[pair].back >= 0)
-                       tputs(vtparm(t_set_background(_cursesi_screen->term),
-                           _cursesi_screen->colour_pairs[pair].back),
+                       tputs(tiparm(t_set_background(_cursesi_screen->term),
+                           (int)_cursesi_screen->colour_pairs[pair].back),
                            0, __cputchar);
                break;
        }
index 10de43832af418368862065605984cf01178d284..3d7dc5e8808a4b564ad7aa5076fca6340dddd72f 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: cr_put.c,v 1.30 2010/02/12 10:06:15 roy Exp $  */
+/*     $NetBSD: cr_put.c,v 1.31 2011/10/03 12:32:15 roy Exp $  */
 
 /*
  * Copyright (c) 1981, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)cr_put.c   8.3 (Berkeley) 5/4/94";
 #else
-__RCSID("$NetBSD: cr_put.c,v 1.30 2010/02/12 10:06:15 roy Exp $");
+__RCSID("$NetBSD: cr_put.c,v 1.31 2011/10/03 12:32:15 roy Exp $");
 #endif
 #endif                         /* not lint */
 
@@ -165,7 +165,7 @@ fgoto(in_refresh)
                destline = outline;
        
        if (cursor_address &&
-           (cgp = t_vparm(NULL, cursor_address, destline, destcol)))
+           (cgp = tiparm(cursor_address, destline, destcol)))
        {
                /*
                 * Need this condition due to inconsistent behavior
index b59359f48a14ddde1134e9776ff4f99c6cf955b3..90688824b202a34313eccf78e16e71cd2f2e77da 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: curs_set.c,v 1.9 2010/02/03 15:34:40 roy Exp $ */
+/*     $NetBSD: curs_set.c,v 1.10 2011/03/30 09:47:02 blymn Exp $      */
 
 /*-
  * Copyright (c) 1998-2000 Brett Lymn
@@ -31,7 +31,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: curs_set.c,v 1.9 2010/02/03 15:34:40 roy Exp $");
+__RCSID("$NetBSD: curs_set.c,v 1.10 2011/03/30 09:47:02 blymn Exp $");
 #endif                         /* not lint */
 
 #include "curses.h"
@@ -59,6 +59,7 @@ curs_set(int visibility)
 #endif
                                _cursesi_screen->old_mode = 0;
                                tputs(cursor_invisible, 0, __cputchar);
+                               fflush(_cursesi_screen->outfd);
                                return old_one;
                        }
                        break;
@@ -70,6 +71,7 @@ curs_set(int visibility)
 #endif
                                _cursesi_screen->old_mode = 1;
                                tputs(cursor_normal, 0, __cputchar);
+                               fflush(_cursesi_screen->outfd);
                                return old_one;
                        }
                        break;
@@ -82,6 +84,7 @@ curs_set(int visibility)
 #endif
                                _cursesi_screen->old_mode = 2;
                                tputs(cursor_visible, 0, __cputchar);
+                               fflush(_cursesi_screen->outfd);
                                return old_one;
                        }
                        break;
index eaad716a1ee7b49bbaf9f750d24128aed206271a..901552aadfcdf4237f3613ae70dc434090231f31 100644 (file)
@@ -1,4 +1,4 @@
-.\"    $NetBSD: curses.3,v 1.61 2010/12/09 13:26:27 njoly Exp $
+.\"    $NetBSD: curses.3,v 1.63 2012/04/21 12:27:27 roy Exp $
 .\"
 .\" Copyright (c) 1985, 1991, 1993
 .\"    The Regents of the University of California.  All rights reserved.
@@ -29,7 +29,7 @@
 .\"
 .\"     @(#)curses.3   8.1 (Berkeley) 6/4/93
 .\"
-.Dd July 6, 2009
+.Dd April 5, 2012
 .Dt CURSES 3
 .Os
 .Sh NAME
@@ -118,7 +118,6 @@ must be called before any of the other routines that deal with color are used.
 .It getbegx Ta Xr curses_cursor 3
 .It getbegy Ta Xr curses_cursor 3
 .It getbkgd Ta Xr curses_background 3
-.It getcap Ta Xr curses_termcap 3
 .It getch Ta Xr curses_input 3
 .It getcurx Ta Xr curses_cursor 3
 .It getcury Ta Xr curses_cursor 3
@@ -158,7 +157,6 @@ must be called before any of the other routines that deal with color are used.
 .It keypad Ta Xr curses_input 3
 .It killchar Ta Xr curses_tty 3
 .It leaveok Ta Xr curses_tty 3
-.It longname Ta Xr curses_termcap 3
 .It meta Ta Xr curses_tty 3
 .It move Ta Xr curses_cursor 3
 .It mvaddch Ta Xr curses_addch 3
@@ -321,7 +319,7 @@ The terminal type of the current terminal.
 .Xr ioctl 2 ,
 .Xr getenv 3 ,
 .Xr tty 4 ,
-.Xr termcap 5
+.Xr terminfo 5
 .Rs
 .%T Screen Updating and Cursor Movement Optimization: A Library Package
 .%A Ken Arnold
index b7b607c0d1bc1e62a35a25f0f230bd2b2e1dea7a..a3579377c90cf54ba3603abfa3879ec683f173a5 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: curses.h,v 1.101 2010/12/16 17:42:28 wiz Exp $ */
+/*     $NetBSD: curses.h,v 1.104 2012/04/21 12:27:27 roy Exp $ */
 
 /*
  * Copyright (c) 1981, 1993, 1994
@@ -642,7 +642,6 @@ int  flushok(WINDOW *, bool);
 char   *fullname(const char *, char *);
 chtype  getattrs(WINDOW *);
 chtype  getbkgd(WINDOW *);
-char   *getcap(char *);
 int     getcury(WINDOW *);
 int     getcurx(WINDOW *);
 int     getbegy(WINDOW *);
@@ -672,7 +671,6 @@ int  keypad(WINDOW *, bool);
 char   *keyname(int);
 char     killchar(void);
 int     leaveok(WINDOW *, bool);
-char   *longname(void);
 int     meta(WINDOW *, bool);
 int     mvcur(int, int, int, int);
 int      mvderwin(WINDOW *, int, int);
@@ -735,10 +733,10 @@ int        ungetch(int);
 int     untouchwin(WINDOW *);
 int     use_default_colors(void);
 int     vline(chtype, int);
-int     vw_printw(WINDOW *, const char *, _BSD_VA_LIST_) __printflike(2, 0);
-int     vw_scanw(WINDOW *, const char *, _BSD_VA_LIST_) __scanflike(2, 0);
-int     vwprintw(WINDOW *, const char *, _BSD_VA_LIST_) __printflike(2, 0);
-int     vwscanw(WINDOW *, const char *, _BSD_VA_LIST_) __scanflike(2, 0);
+int     vw_printw(WINDOW *, const char *, __va_list) __printflike(2, 0);
+int     vw_scanw(WINDOW *, const char *, __va_list) __scanflike(2, 0);
+int     vwprintw(WINDOW *, const char *, __va_list) __printflike(2, 0);
+int     vwscanw(WINDOW *, const char *, __va_list) __scanflike(2, 0);
 int     waddch(WINDOW *, chtype);
 int     waddchnstr(WINDOW *, const chtype *, int);
 int     waddchstr(WINDOW *, const chtype *);
index 2143286e711a5382185cfd942321a2bab6b51b8d..db726efc11e247df4aad95a70437e7858dfe636b 100644 (file)
@@ -1,4 +1,4 @@
-.\" $NetBSD: curses_chgat.3,v 1.4 2009/07/12 23:14:06 wiz Exp $
+.\" $NetBSD: curses_chgat.3,v 1.5 2011/02/10 08:54:12 blymn Exp $
 .\"
 .\" Copyright (c) 2009 The NetBSD Foundation, Inc.
 .\" All rights reserved.
@@ -65,7 +65,7 @@ and the color pair to
 .Fa color .
 If
 .Fa n
-is negative or larger than the reminder of the line, it gets truncated.
+is negative or larger than the remainder of the line, it gets truncated.
 .Pp
 The
 .Fn wchgat
index c6d16f3df7fa483667567f86fb35e8770f58a148..e66d558cba0adc6039f7a021d1c1c40a59f90d35 100644 (file)
@@ -1,4 +1,4 @@
-.\"    $NetBSD: curses_inch.3,v 1.10 2004/04/21 06:24:32 jdc Exp $
+.\"    $NetBSD: curses_inch.3,v 1.12 2011/08/07 11:37:06 wiz Exp $
 .\"
 .\" Copyright (c) 2002
 .\"    Brett Lymn (blymn@NetBSD.org, brett_lymn@yahoo.com.au)
@@ -30,7 +30,7 @@
 .\" SUCH DAMAGE.
 .\"
 .\"
-.Dd April 18, 2004
+.Dd August 7, 2011
 .Dt CURSES_INCH 3
 .Os
 .Sh NAME
@@ -219,6 +219,13 @@ and
 .Fn winstr
 is not recommended.
 .Sh RETURN VALUES
+If the calls
+.Fn innstr ,
+.Fn mvinnstr ,
+.Fn mvwinnstr ,
+and
+.Fn winnstr
+succeed then they will return the number of characters actually read.
 Functions returning pointers will return
 .Dv NULL
 if an error is detected.
index 8eb76a1f3c18b33be76cc849ad9377caa1ae33a7..d6ea58e79d5a33788ae933297f81924bd26206a1 100644 (file)
@@ -1,4 +1,4 @@
-.\"    $NetBSD: curses_input.3,v 1.21 2010/08/06 04:03:26 dholland Exp $
+.\"    $NetBSD: curses_input.3,v 1.22 2012/04/21 12:27:28 roy Exp $
 .\"
 .\" Copyright (c) 2002
 .\"    Brett Lymn (blymn@NetBSD.org, brett_lymn@yahoo.com.au)
@@ -30,7 +30,7 @@
 .\" SUCH DAMAGE.
 .\"
 .\"
-.Dd July 25, 2006
+.Dd April 5, 2012
 .Dt CURSES_INPUT 3
 .Os
 .Sh NAME
@@ -161,7 +161,7 @@ be made by using the
 .Fn define_key
 function.
 Normally, these associations are made by the information in the
-.Xr termcap 5
+.Xr terminfo 5
 database but the
 .Fn define_key
 function gives the capability to remove or add more associations.
@@ -177,7 +177,7 @@ It is valid to have multiple character sequences map to the same key
 symbol and there are no constraints on the length of the sequence allowed.
 The assembly of custom sequences follow the same rules for inter-character
 timing and so forth as the
-.Xr termcap 5
+.Xr terminfo 5
 derived ones.
 If
 .Fn define_key
@@ -186,7 +186,7 @@ is passed a NULL in
 then all associations for the key symbol in
 .Fa key_symbol
 will be deleted, this includes any associations that were derived from
-.Xr termcap 5 .
+.Xr terminfo 5 .
 .Pp
 The
 .Fn mvgetch
@@ -544,7 +544,7 @@ has been called on a window, then it may return one of the following values:
 .El
 .Pp
 Note that not all terminals are capable of generating all the keycodes
-listed above nor are termcap entries normally configured with all the
+listed above nor are terminfo entries normally configured with all the
 above capabilities defined.
 .Pp
 Other functions that return an int will return one of the following
@@ -565,7 +565,7 @@ if an error is detected.
 .Xr curses_keyname 3 ,
 .Xr curses_refresh 3 ,
 .Xr curses_tty 3 ,
-.Xr termcap 5
+.Xr terminfo 5
 .Sh STANDARDS
 The
 .Nx
index cc5172d053903e051ca1cafabb05e5907bb64366..7047693e537519a6e2e7f7bf8ba3091ede8ed5e7 100644 (file)
@@ -1,4 +1,4 @@
-.\"    $NetBSD: curses_print.3,v 1.6 2003/04/16 13:35:01 wiz Exp $
+.\"    $NetBSD: curses_print.3,v 1.7 2011/04/06 08:38:43 jruoho Exp $
 .\"
 .\" Copyright (c) 2002
 .\"    Brett Lymn (blymn@NetBSD.org, brett_lymn@yahoo.com.au)
@@ -30,7 +30,7 @@
 .\" SUCH DAMAGE.
 .\"
 .\"
-.Dd August 12, 2002
+.Dd April 6, 2011
 .Dt CURSES_PRINT 3
 .Os
 .Sh NAME
@@ -64,8 +64,9 @@ The
 .Fn printw
 function formats and prints its arguments on
 .Dv stdscr .
-The behaviour is the same as that of
-.Fn printf .
+The behavior is deliberately similar to that of
+.Xr printf 3 ,
+but, notably, the return value differs.
 .Pp
 The
 .Fn wprintw
@@ -104,7 +105,7 @@ if an error is detected.
 The functions that return an int will return one of the following
 values:
 .Pp
-.Bl -tag -width ERR -compact
+.Bl -tag -width ERR -offset indent
 .It Er OK
 The function completed successfully.
 .It Er ERR
index fcd19d46cbcf85e60afffe40fff891ee1c403e7e..c47c020a4fa6272f762075f0c9050032162caf4f 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: curses_private.h,v 1.46 2010/12/16 17:42:28 wiz Exp $  */
+/*     $NetBSD: curses_private.h,v 1.47 2011/10/04 11:01:13 roy Exp $  */
 
 /*-
  * Copyright (c) 1998-2000 Brett Lymn
@@ -239,7 +239,6 @@ struct __screen {
        unsigned int len;
        int meta_state;
        char padchar;
-       char ttytype[128];
        int endwin;
        int notty;
        int half_delay;
@@ -314,7 +313,6 @@ void        __cursesi_putnsp(nschar_t *, const int, const int);
 void   __cursesi_chtype_to_cchar(chtype, cchar_t *);
 #endif /* HAVE_WCHAR */
 int     __unget(wint_t);
-char   *__longname(char *, char *);    /* Original BSD version */
 int     __mvcur(int, int, int, int, int);
 WINDOW  *__newwin(SCREEN *, int, int, int, int, int);
 int     __nodelay(void);
index 50bb806b95711b04f1375647b75954b4bb41f3c7..c8b91ebf3aab9e7aaff7c926d846ec47d58448ac 100644 (file)
@@ -1,4 +1,4 @@
-.\"    $NetBSD: curses_screen.3,v 1.14 2007/10/25 20:42:07 jdc Exp $
+.\"    $NetBSD: curses_screen.3,v 1.15 2012/04/21 12:27:28 roy Exp $
 .\"
 .\" Copyright (c) 2002
 .\"    Brett Lymn (blymn@NetBSD.org, brett_lymn@yahoo.com.au)
@@ -30,7 +30,7 @@
 .\" SUCH DAMAGE.
 .\"
 .\"
-.Dd October 24, 2007
+.Dd April 5, 2012
 .Dt CURSES_SCREEN 3
 .Os
 .Sh NAME
@@ -78,8 +78,8 @@ use by curses.
 The
 .Fa type
 argument points to a
-.Xr termcap 5
-capability name, or it may be
+.Xr terminfo 5
+entry, or it may be
 .Dv NULL
 in which case the TERM environment variable is used.
 The
@@ -120,7 +120,7 @@ call which may be called prior to
 The size of the curses screen is determined by checking the
 .Xr tty 4
 size and then the
-.Xr termcap 5
+.Xr terminfo 5
 entries for the terminal type.
 If the environment variables
 .Va LINES
@@ -168,7 +168,7 @@ information related to the named terminal.
 The
 .Fa name
 argument must be a valid name or alias in the
-.Xr termcap 5
+.Xr terminfo 5
 database for this function to succeed.
 .Sh RETURN VALUES
 Functions returning pointers will return
@@ -186,7 +186,7 @@ An error occurred in the function.
 .Sh SEE ALSO
 .Xr curses_window 3 ,
 .Xr tty 4 ,
-.Xr termcap 5 ,
+.Xr terminfo 5 ,
 .Xr signal 7
 .Sh STANDARDS
 The
index 269b9d40919f9b5b75635dcca635a4e4a9b20f1d..d448c9cac75c0a81bb30d2636e3ae5d39c334b67 100644 (file)
@@ -1,4 +1,4 @@
-.\"    $NetBSD: curses_standout.3,v 1.4 2008/04/30 13:10:51 martin Exp $
+.\"    $NetBSD: curses_standout.3,v 1.6 2012/05/02 04:23:09 agc Exp $
 .\" Copyright (c) 2002 The NetBSD Foundation, Inc.
 .\" All rights reserved.
 .\"
@@ -25,7 +25,7 @@
 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 .\" POSSIBILITY OF SUCH DAMAGE.
 .\"
-.Dd October 13, 2002
+.Dd May 1, 2012
 .Dt CURSES_STANDOUT 3
 .Os
 .Sh NAME
 .Ft int
 .Fn standend void
 .Ft int
-.Fn wstandout void
+.Fo wstandout
+.Fa "WINDOW *win"
+.Fc
 .Ft int
-.Fn wstandend void
+.Fo wstandend
+.Fa "WINDOW *win"
+.Fc
 .Sh DESCRIPTION
 These functions manipulate the standout attribute on
 .Dv stdscr
index a32f7e88a8863008eb6523118f1c3e65df268169..19247b66d9007196cc755bd968ac5ab37eb51a3a 100644 (file)
@@ -1,4 +1,4 @@
-.\"    $NetBSD: curses_termcap.3,v 1.4 2003/04/16 13:35:01 wiz Exp $
+.\"    $NetBSD: curses_termcap.3,v 1.6 2012/04/21 12:27:28 roy Exp $
 .\"
 .\" Copyright (c) 2002
 .\"    Brett Lymn (blymn@NetBSD.org, brett_lymn@yahoo.com.au)
 .\" SUCH DAMAGE.
 .\"
 .\"
-.Dd August 12, 2002
+.Dd October 4, 2011
 .Dt CURSES_TERMCAP 3
 .Os
 .Sh NAME
 .Nm curses_termcap ,
-.Nm fullname ,
-.Nm getcap ,
-.Nm longname
+.Nm fullname
 .Nd curses termcap querying routines
 .Sh LIBRARY
 .Lb libcurses
 .In curses.h
 .Ft char *
 .Fn fullname "char *termbuf" "char *name"
-.Ft char *
-.Fn getcap "char *name"
-.Ft char *
-.Fn longname "void"
 .Sh DESCRIPTION
 The
 .Fn fullname
@@ -62,22 +56,6 @@ termcap entry name.
 It is assumed that the
 .Fa name
 variable has sufficient storage to hold the full name of the terminal.
-.Pp
-A termcap entry can be retrieved by calling the
-.Fn getcap
-function with the name of the capability in
-.Fa name .
-The matching capability string for the terminal is returned.
-.Pp
-The
-.Fn longname
-function returns a verbose description of the terminal which is taken
-from the last name alias in the termcap description for the terminal.
-This string will be at most 128 characters long and will only be
-defined after a call to
-.Fn initscr
-or
-.Fn newterm .
 .Sh RETURN VALUES
 Functions returning pointers will return
 .Dv NULL
@@ -92,7 +70,7 @@ The function completed successfully.
 An error occurred in the function.
 .El
 .Sh SEE ALSO
-.Xr termcap 5
+.Xr terminfo 5
 .Sh STANDARDS
 The
 .Lb libcurses
index cb1a301370d512c8ed4b1c858717dec6d6e91119..d2fe8b6d5ada9b38d36eee7e0853b6a1312f63ba 100644 (file)
@@ -1,4 +1,4 @@
-.\"    $NetBSD: curses_window.3,v 1.13 2009/05/18 09:30:31 wiz Exp $
+.\"    $NetBSD: curses_window.3,v 1.15 2011/09/15 12:01:18 wiz Exp $
 .\"
 .\" Copyright (c) 2002
 .\"    Brett Lymn (blymn@NetBSD.org, brett_lymn@yahoo.com.au)
@@ -30,7 +30,7 @@
 .\" SUCH DAMAGE.
 .\"
 .\"
-.Dd March 31, 2008
+.Dd September 15, 2011
 .Dt CURSES_WINDOW 3
 .Os
 .Sh NAME
@@ -155,18 +155,28 @@ positions are the new origin of the window on the screen.
 If the new position would cause the any part of the window to lie outside
 the screen, it is an error and the window is not moved.
 .Pp
-A subwindow can be moved relative to the parent window by calling the
+A mapping of a region relative to the parent window may be created by
+calling the
 .Fn mvderwin
 function, the
 .Fa y
 and
 .Fa x
 positions are relative to the origin of the parent window.
+The screen offset of
+.Fa win
+is not updated, the characters beginning at
+.Fa y ,
+.Fa x
+for the area the size of
+.Fa win
+will be displayed at the screen offset of
+.Fa win .
 If the given window in
 .Fa win
 is not a subwindow then an error will be returned.
 If the new position would cause the any part of the window to lie outside
-the parent window, it is an error and the window is not moved.
+the parent window, it is an error and the mapping is not updated.
 .Pp
 The
 .Fn newwin
index 9b6983a86a9699bff04a75d1562c33eb0093d5d2..85b0addf8554fae2e4fcef8c89db0f59e90ae2c5 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: erase.c,v 1.24 2009/07/22 16:57:14 roy Exp $   */
+/*     $NetBSD: erase.c,v 1.25 2011/07/10 12:11:49 blymn Exp $ */
 
 /*
  * Copyright (c) 1981, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)erase.c    8.2 (Berkeley) 5/4/94";
 #else
-__RCSID("$NetBSD: erase.c,v 1.24 2009/07/22 16:57:14 roy Exp $");
+__RCSID("$NetBSD: erase.c,v 1.25 2011/07/10 12:11:49 blymn Exp $");
 #endif
 #endif                         /* not lint */
 
@@ -72,8 +72,8 @@ werase(WINDOW *win)
 #ifdef DEBUG
        __CTRACE(__CTRACE_ERASE, "werase: (%p)\n", win);
 #endif
-       if (__using_color && win != curscr)
-               attr = win->battr & __COLOR;
+       if (win != curscr)
+               attr = win->battr & __ATTRIBUTES;
        else
                attr = 0;
        for (y = 0; y < win->maxy; y++) {
@@ -86,7 +86,10 @@ werase(WINDOW *win)
                        if (sp->ch != ( wchar_t )btowc(( int ) win->bch ) ||
                            (sp->attr & WA_ATTRIBUTES) != 0 || sp->nsp) {
 #endif /* HAVE_WCHAR */
-                               sp->attr = attr;
+                               if (sp->attr & __ALTCHARSET)
+                                       sp->attr = attr | __ALTCHARSET;
+                               else
+                                       sp->attr = attr;
 #ifdef HAVE_WCHAR
                                sp->ch = ( wchar_t )btowc(( int ) win->bch);
                                if (_cursesi_copy_nsp(win->bnsp, sp) == ERR)
index 4430467d043e0290cf690d3fc44e8c3a39ec2a90..0e69334a4cae7500a07faabc46a42bcb7b9626c7 100644 (file)
@@ -1,4 +1,4 @@
-/*   $NetBSD: get_wch.c,v 1.9 2010/12/16 17:42:28 wiz Exp $ */
+/*   $NetBSD: get_wch.c,v 1.10 2012/06/29 10:40:29 blymn Exp $ */
 
 /*
  * Copyright (c) 2005 The NetBSD Foundation Inc.
@@ -36,7 +36,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: get_wch.c,v 1.9 2010/12/16 17:42:28 wiz Exp $");
+__RCSID("$NetBSD: get_wch.c,v 1.10 2012/06/29 10:40:29 blymn Exp $");
 #endif                                           /* not lint */
 
 #include <string.h>
@@ -67,7 +67,7 @@ void
 __init_get_wch(SCREEN *screen)
 {
        wstate = INKEY_NORM;
-       memset( &screen->cbuf, 0, MAX_CBUF_SIZE * sizeof( int ));
+       memset( &screen->cbuf, 0, sizeof(screen->cbuf));
        screen->cbuf_head = screen->cbuf_tail = screen->cbuf_cur = 0;
 }
 #endif /* HAVE_WCHAR */
index 4c1163f899e92edbe4b39be64e36b34bc31232e5..02531390833cd22138a73e631f929638cc2255e1 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: getch.c,v 1.57 2010/12/07 22:02:52 joerg Exp $ */
+/*     $NetBSD: getch.c,v 1.59 2012/04/21 12:27:28 roy Exp $   */
 
 /*
  * Copyright (c) 1981, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)getch.c    8.2 (Berkeley) 5/4/94";
 #else
-__RCSID("$NetBSD: getch.c,v 1.57 2010/12/07 22:02:52 joerg Exp $");
+__RCSID("$NetBSD: getch.c,v 1.59 2012/04/21 12:27:28 roy Exp $");
 #endif
 #endif                                 /* not lint */
 
@@ -365,14 +365,11 @@ delete_key_sequence(keymap_t *current, int key_type)
                                _cursesi_free_keymap(key->value.next);
                } else if ((key->type == KEYMAP_LEAF)
                           && (key->value.symbol == key_type)) {
-                         /*
-                          * delete the mapping by negating the current
-                          * index - this "holds" the position in the
-                          * allocation just in case we later re-add
-                          * the key for that mapping.
-                          */
-                       current->mapping[i] = - current->mapping[i];
-                       current->count--;
+#ifdef DEBUG
+               __CTRACE(__CTRACE_INPUT, "delete_key_sequence: found keysym %d, deleting\n",
+                   key_type);
+#endif
+                       key->enable = FALSE;
                }
        }
 }
@@ -398,8 +395,8 @@ add_key_sequence(SCREEN *screen, char *sequence, int key_type)
 
        /*
         * OK - we really should never get a zero length string here, either
-        * the termcap entry is there and it has a value or we are not called
-        * at all.  Unfortunately, if someone assigns a termcap string to the
+        * the terminfo entry is there and it has a value or we are not called
+        * at all.  Unfortunately, if someone assigns a terminfo string to the
         * ^@ value we get passed a null string which messes up our length.
         * So, if we get a null string then just insert a leaf value in
         * the 0th char position of the root keymap.  Note that we are
@@ -474,7 +471,7 @@ __init_getch(SCREEN *screen)
                limit -= l;
 #ifdef DEBUG
                        __CTRACE(__CTRACE_INIT,
-                           "Processing termcap entry %d, sequence ",
+                           "Processing terminfo entry %d, sequence ",
                            tc[i].code);
                        length = (int) strlen(entry);
                        for (k = 0; k <= length -1; k++)
@@ -783,9 +780,13 @@ define_key(char *sequence, int symbol)
        if (symbol <= 0)
                return ERR;
 
-       if (sequence == NULL)
+       if (sequence == NULL) {
+#ifdef DEBUG
+               __CTRACE(__CTRACE_INPUT, "define_key: deleting keysym %d\n",
+                   symbol);
+#endif
                delete_key_sequence(_cursesi_screen->base_keymap, symbol);
-       else
+       else
                add_key_sequence(_cursesi_screen, sequence, symbol);
 
        return OK;
index 291238e20d1b140e0e41eb008f7fe40f6d0c41a9..e36f5ba3e3bddd536a82b538a2d0f496b2b2cd80 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: getstr.c,v 1.20 2007/05/28 15:01:55 blymn Exp $        */
+/*     $NetBSD: getstr.c,v 1.22 2012/01/27 15:37:09 christos Exp $     */
 
 /*
  * Copyright (c) 1981, 1993, 1994
 #if 0
 static char sccsid[] = "@(#)getstr.c   8.2 (Berkeley) 5/4/94";
 #else
-__RCSID("$NetBSD: getstr.c,v 1.20 2007/05/28 15:01:55 blymn Exp $");
+__RCSID("$NetBSD: getstr.c,v 1.22 2012/01/27 15:37:09 christos Exp $");
 #endif
 #endif                         /* not lint */
 
+#include <ctype.h>
 #include "curses.h"
 #include "curses_private.h"
 
@@ -161,12 +162,12 @@ int
 __wgetnstr(WINDOW *win, char *str, int n)
 {
        char *ostr, ec, kc;
-       int c, oldx, remain;
+       int c, xpos, oldx, remain;
 
        ostr = str;
        ec = erasechar();
        kc = killchar();
-       oldx = win->curx;
+       xpos = oldx = win->curx;
        _DIAGASSERT(n == -1 || n > 1);
        remain = n - 1;
 
@@ -182,17 +183,23 @@ __wgetnstr(WINDOW *win, char *str, int n)
                        *str = '\0';
                        if (str != ostr) {
                                if ((char) c == ec) {
-                                       mvwaddch(win, win->cury, win->curx,
-                                           ' ');
-                                       wmove(win, win->cury, win->curx - 1);
+                                       mvwaddch(win, win->cury, xpos, ' ');
+                                       if (xpos > oldx)
+                                               mvwaddch(win, win->cury,
+                                                   xpos - 1, ' ');
+                                       if (win->curx > xpos - 1)
+                                               wmove(win, win->cury, xpos - 1);
+                                       xpos--;
                                }
                                if (c == KEY_BACKSPACE || c == KEY_LEFT) {
                                        /* getch() displays the key sequence */
-                                       mvwaddch(win, win->cury, win->curx - 1,
+                                       mvwaddch(win, win->cury, win->curx,
                                            ' ');
-                                       mvwaddch(win, win->cury, win->curx - 2,
+                                       mvwaddch(win, win->cury, win->curx - 1,
                                            ' ');
-                                       wmove(win, win->cury, win->curx - 1);
+                                       if (win->curx > xpos)
+                                               wmove(win, win->cury, xpos - 1);
+                                       xpos--;
                                }
                                str--;
                                if (n != -1) {
@@ -200,11 +207,12 @@ __wgetnstr(WINDOW *win, char *str, int n)
                                        remain++;
                                }
                        } else {        /* str == ostr */
-                               if (c == KEY_BACKSPACE || c == KEY_LEFT)
-                                       /* getch() displays the other keys */
+                               /* getch() displays the other keys */
+                               if (win->curx > oldx)
                                        mvwaddch(win, win->cury, win->curx - 1,
                                            ' ');
                                wmove(win, win->cury, oldx);
+                               xpos = oldx;
                        }
                } else if (c == kc) {
                        *str = '\0';
@@ -229,16 +237,18 @@ __wgetnstr(WINDOW *win, char *str, int n)
                        wmove(win, win->cury, oldx);
                } else if (c >= KEY_MIN && c <= KEY_MAX) {
                        /* getch() displays these characters */
-                       mvwaddch(win, win->cury, win->curx - 1, ' ');
-                       wmove(win, win->cury, win->curx - 1);
+                       mvwaddch(win, win->cury, xpos, ' ');
+                       wmove(win, win->cury, xpos);
                } else {
                        if (remain) {
+                               if (iscntrl((unsigned char)c))
+                                       mvwaddch(win, win->cury, xpos, ' ');
                                str++;
+                               xpos++;
                                remain--;
-                       } else {
-                               mvwaddch(win, win->cury, win->curx - 1, ' ');
-                               wmove(win, win->cury, win->curx - 1);
-                       }
+                       } else
+                               mvwaddch(win, win->cury, xpos, ' ');
+                       wmove(win, win->cury, xpos);
                }
        }
 
index 00318e509c32550e15dcee0f36a088d74c16a5f2..c5893972ddb009e195928ed474842b2631dc2c71 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: inchstr.c,v 1.3 2009/07/22 16:57:14 roy Exp $  */
+/*     $NetBSD: inchstr.c,v 1.6 2012/04/21 11:33:16 blymn Exp $        */
 
 /*
  * Copyright 2001 Wasabi Systems, Inc.
  *    written permission.
  *
  * THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL WASABI SYSTEMS, INC. BE 
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
+ * ARE DISCLAIMED. IN NO EVENT SHALL WASABI SYSTEMS, INC. BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  * THE POSSIBILITY OF SUCH DAMAGE.
  */
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: inchstr.c,v 1.3 2009/07/22 16:57:14 roy Exp $");
+__RCSID("$NetBSD: inchstr.c,v 1.6 2012/04/21 11:33:16 blymn Exp $");
 #endif                         /* not lint */
 
 #include "curses.h"
@@ -144,7 +144,12 @@ winchnstr(WINDOW *win, chtype *chstr, int n)
        end = &win->alines[win->cury]->line[epos];
 
        while (start <= end) {
-               *chstr = start->ch;
+               /* or in the attributes but strip out internal flags */
+#ifdef HAVE_WCHAR
+               *chstr = start->ch | (start->attr & ~__ACS_IS_WACS);
+#else
+               *chstr = start->ch | start->attr;
+#endif
                chstr++;
                start++;
        }
index c470f5a42f1e77b8760e6c9734f20e724f8ea811..d387e212d321a0a3b9f7ef2bb0977a15353fde9c 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: instr.c,v 1.3 2009/07/22 16:57:15 roy Exp $    */
+/*     $NetBSD: instr.c,v 1.4 2011/08/07 10:54:53 blymn Exp $  */
 
 /*
  * Copyright 2001 Wasabi Systems, Inc.
@@ -37,7 +37,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: instr.c,v 1.3 2009/07/22 16:57:15 roy Exp $");
+__RCSID("$NetBSD: instr.c,v 1.4 2011/08/07 10:54:53 blymn Exp $");
 #endif                         /* not lint */
 
 #include "curses.h"
@@ -137,11 +137,12 @@ int
 winnstr(WINDOW *win, char *str, int n)
 {
        __LDATA *end, *start;
-       int epos;
+       int epos, sn;
 
        if (str == NULL)
                return ERR;
 
+       sn = n;
        start = &win->alines[win->cury]->line[win->curx];
        /* (n - 1) to leave room for the trailing NUL */
        if (n < 0 || (n - 1) > win->maxx - win->curx - 1) {
@@ -161,7 +162,7 @@ winnstr(WINDOW *win, char *str, int n)
        }
        *str = '\0';
 
-       if (n < 0)
+       if (sn < 0)
                return OK;
        else
                return n;
index 2940b49c4c92345834f05d1c8a4a4d77f36a4372..9443d120eec77f9f874de1d93e5cdedcb787f3ac 100644 (file)
@@ -1,4 +1,4 @@
-/*   $NetBSD: keymap.h,v 1.3 2010/02/03 15:34:40 roy Exp $ */
+/*   $NetBSD: keymap.h,v 1.4 2012/04/21 12:27:28 roy Exp $ */
 
 /*
  * Copyright (c) 2005 The NetBSD Foundation Inc.
@@ -39,7 +39,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: keymap.h,v 1.3 2010/02/03 15:34:40 roy Exp $");
+__RCSID("$NetBSD: keymap.h,v 1.4 2012/04/21 12:27:28 roy Exp $");
 #endif                          /* not lint */
 
 /* keymap related stuff */
@@ -48,7 +48,7 @@ __RCSID("$NetBSD: keymap.h,v 1.3 2010/02/03 15:34:40 roy Exp $");
  * because it is needed by both getch() and get_wch()
  *
  * Keyboard input handler.  Do this by snarfing
- * all the info we can out of the termcap entry for TERM and putting it
+ * all the info we can out of the terminfo entry for TERM and putting it
  * into a set of keymaps.  A keymap is an array the size of all the possible
  * single characters we can get, the contents of the array is a structure
  * that contains the type of entry this character is (i.e. part/end of a
@@ -107,7 +107,7 @@ struct keymap {
 #define INKEY_WCASSEMBLING 4 /* assembling a wide char sequence */
 #endif /* HAVE_WCHAR */
 
-/* The termcap data we are interested in and the symbols they map to */
+/* The terminfo data we are interested in and the symbols they map to */
 struct tcdata {
        int code;               /* code of the terminfo entry */
        wchar_t symbol;         /* the symbol associated with it */
diff --git a/lib/libcurses/longname.c b/lib/libcurses/longname.c
deleted file mode 100644 (file)
index 64adbd8..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/*     $NetBSD: longname.c,v 1.16 2004/01/20 08:29:29 wiz Exp $        */
-
-/*
- * Copyright (c) 1981, 1993
- *     The Regents of the University of California.  All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-#ifndef lint
-#if 0
-static char sccsid[] = "@(#)longname.c 8.1 (Berkeley) 6/4/93";
-#else
-__RCSID("$NetBSD: longname.c,v 1.16 2004/01/20 08:29:29 wiz Exp $");
-#endif
-#endif                         /* not lint */
-
-#include "curses.h"
-#include "curses_private.h"
-
-/*
- * __longname --
- *     Fill in "def" with the long name of the terminal.
- *      This is the original BSD version of longname(), modified to return
- *     at most 128 characters.
- */
-char   *
-__longname(char *bp, char *def)
-{
-       char   *cp, *last_bp;
-       int     i = 0;
-
-       last_bp = NULL;
-       do {
-               while (*bp && *bp != ':' && *bp != '|')
-                       bp++;
-               if (*bp == '|') {
-                       last_bp = bp;
-                       bp++;
-               }
-       } while (*bp && *bp != ':');
-
-       if (last_bp != NULL)
-               bp = last_bp;
-
-       if (*bp == '|') {
-               for (cp = def, ++bp; *bp && *bp != ':' && *bp != '|' &&
-                   i < 127;)
-                       *cp++ = *bp++;
-                       i++;
-               *cp = '\0';
-       }
-       return (def);
-}
-
-/*
- * longname --
- *     Return pointer to the long name of the terminal.
- *     This is the SUS version of longname()
- */
-char   *
-longname(void)
-{
-       return (_cursesi_screen->ttytype);
-}
index 917c549b6b7f725f7fb4ca6adde91c7df0ab1026..36e10bb38cca7eea371c9b8bca30a51edd2f97a4 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: meta.c,v 1.7 2010/02/03 15:34:40 roy Exp $     */
+/*     $NetBSD: meta.c,v 1.8 2011/08/07 10:52:18 blymn Exp $   */
 
 /*-
  * Copyright (c) 1998-2000 Brett Lymn
@@ -31,7 +31,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: meta.c,v 1.7 2010/02/03 15:34:40 roy Exp $");
+__RCSID("$NetBSD: meta.c,v 1.8 2011/08/07 10:52:18 blymn Exp $");
 #endif                         /* not lint */
 
 #include "curses.h"
@@ -51,6 +51,7 @@ meta(/*ARGSUSED*/ WINDOW *win, bool bf)
 #endif
                        tputs(meta_on, 0, __cputchar);
                        _cursesi_screen->meta_state = TRUE;
+                       fflush(_cursesi_screen->outfd);
                }
        } else {
                if (meta_off != NULL) {
@@ -59,6 +60,7 @@ meta(/*ARGSUSED*/ WINDOW *win, bool bf)
 #endif
                        tputs(meta_off, 0, __cputchar);
                        _cursesi_screen->meta_state = FALSE;
+                       fflush(_cursesi_screen->outfd);
                }
        }
 
index ddc9ff08908c15fb65caaa3df0b212f8492fbb90..f7c2eaddd52020562504e4e4cc3fc6cfc323abeb 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: mvwin.c,v 1.15 2003/08/07 16:44:22 agc Exp $   */
+/*     $NetBSD: mvwin.c,v 1.17 2012/09/28 06:03:45 blymn Exp $ */
 
 /*
  * Copyright (c) 1981, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)mvwin.c    8.2 (Berkeley) 5/4/94";
 #else
-__RCSID("$NetBSD: mvwin.c,v 1.15 2003/08/07 16:44:22 agc Exp $");
+__RCSID("$NetBSD: mvwin.c,v 1.17 2012/09/28 06:03:45 blymn Exp $");
 #endif
 #endif                         /* not lint */
 
@@ -43,14 +43,22 @@ __RCSID("$NetBSD: mvwin.c,v 1.15 2003/08/07 16:44:22 agc Exp $");
 
 /*
  * mvderwin --
- *      Move a derived window.
+ *      Move a derived window.  This does not change the physical screen
+ * coordinates of the subwin, rather maps the characters in the subwin
+ * sized part of the parent window starting at dy, dx into the subwin.
  *
  */
 int
 mvderwin(WINDOW *win, int dy, int dx)
 {
        WINDOW *parent;
-       int x, y;
+       int x, y, i;
+       __LINE *lp, *olp;
+#ifdef HAVE_WCHAR
+       __LDATA *cp;
+       int j;
+       nschar_t *np;
+#endif /* HAVE_WCHAR */
 
        if (win == NULL)
                return ERR;
@@ -60,9 +68,47 @@ mvderwin(WINDOW *win, int dy, int dx)
        if (parent == NULL)
                return ERR;
 
+       if (((win->maxx + dx) > parent->maxx) ||
+           ((win->maxy + dy) > parent->maxy))
+               return ERR;
+
        x = parent->begx + dx;
        y = parent->begy + dy;
-       return mvwin(win, y, x);
+
+       win->ch_off = x;
+       /* Point the line pointers to line space */
+       for (lp = win->lspace, i = 0; i < win->maxy; i++, lp++) {
+               lp->flags = __ISDIRTY;
+               win->alines[i] = lp;
+               olp = parent->alines[i + dy];
+#ifdef DEBUG
+               lp->sentinel = SENTINEL_VALUE;
+#endif
+               lp->line = &olp->line[win->ch_off];
+               lp->firstchp = &olp->firstch;
+               lp->lastchp = &olp->lastch;
+#ifndef HAVE_WCHAR
+               lp->hash = __hash((char *)(void *)lp->line,
+                   (size_t) (win->maxx * __LDATASIZE));
+#else
+               for (cp = lp->line, j = 0; j < win->maxx; j++, cp++) {
+                       lp->hash = __hash_more(&cp->ch, sizeof(wchar_t),
+                           lp->hash);
+                       lp->hash = __hash_more(&cp->attr, sizeof(wchar_t),
+                           lp->hash);
+                       if (cp->nsp) {
+                               np = cp->nsp;
+                               while (np) {
+                                       lp->hash = __hash_more(&np->ch,
+                                           sizeof(wchar_t), lp->hash);
+                                       np = np->next;
+                               }
+                       }
+               }
+#endif /* HAVE_WCHAR */
+       }
+
+       return OK;
 }
 
 /*
index 625a7a4f3fc31f7dda3721212aa1c38bd60eab77..df5e8317f6f13e9caa085f40b835923b0bdff679 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: printw.c,v 1.21 2009/07/07 10:16:52 joerg Exp $        */
+/*     $NetBSD: printw.c,v 1.22 2011/07/17 20:54:34 joerg Exp $        */
 
 /*
  * Copyright (c) 1981, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)printw.c   8.3 (Berkeley) 5/4/94";
 #else
-__RCSID("$NetBSD: printw.c,v 1.21 2009/07/07 10:16:52 joerg Exp $");
+__RCSID("$NetBSD: printw.c,v 1.22 2011/07/17 20:54:34 joerg Exp $");
 #endif
 #endif                         /* not lint */
 
@@ -139,7 +139,7 @@ __winwrite(cookie, buf, n)
  *     This routine actually executes the printf and adds it to the window.
  */
 int
-vw_printw(WINDOW *win, const char *fmt, _BSD_VA_LIST_ ap)
+vw_printw(WINDOW *win, const char *fmt, va_list ap)
 {
        FILE   *f;
 
index 5264bd3bd258820d9da6d4478187950eeed4d436..fd7a9c42dcb6a0d61da33294ba086ba13520bba0 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: refresh.c,v 1.73 2010/02/08 20:45:22 roy Exp $ */
+/*     $NetBSD: refresh.c,v 1.76 2012/04/21 11:33:16 blymn Exp $       */
 
 /*
  * Copyright (c) 1981, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)refresh.c  8.7 (Berkeley) 8/13/94";
 #else
-__RCSID("$NetBSD: refresh.c,v 1.73 2010/02/08 20:45:22 roy Exp $");
+__RCSID("$NetBSD: refresh.c,v 1.76 2012/04/21 11:33:16 blymn Exp $");
 #endif
 #endif                         /* not lint */
 
@@ -174,7 +174,7 @@ _cursesi_wnoutrefresh(SCREEN *screen, WINDOW *win, int begy, int begx,
                            orig, sub_win);
 #endif
                        for (sy = 0; sy < sub_win->maxy; sy++) {
-                               if (sub_win->alines[sy]->flags == __ISDIRTY) {
+                               if (sub_win->alines[sy]->flags & __ISDIRTY) {
                                        orig->alines[sy + sub_win->begy - orig->begy]->flags
                                            |= __ISDIRTY;
                                        sub_win->alines[sy]->flags
@@ -849,8 +849,19 @@ makech(int wy)
 #ifdef DEBUG
                                __CTRACE(__CTRACE_REFRESH,
                                    "makech: have attr %08x, need attr %08x\n",
-                                   curscr->wattr & WA_ATTRIBUTES,
-                                   nsp->attr & WA_ATTRIBUTES);
+                                   curscr->wattr
+#ifndef HAVE_WCHAR
+                                & __ATTRIBUTES
+#else
+                                & WA_ATTRIBUTES
+#endif
+                                        ,  nsp->attr
+#ifndef HAVE_WCHAR
+                                & __ATTRIBUTES
+#else
+                                & WA_ATTRIBUTES
+#endif
+                                       );
 #endif
 
                        off = (~nsp->attr & curscr->wattr)
@@ -1573,18 +1584,18 @@ scrolln(starts, startw, curs, bot, top)
                    top > 3 || bot + 3 < __virtscr->maxy) &&
                    scroll_forward != NULL)))
                {
-                       tputs(vtparm(change_scroll_region, top, bot),
+                       tputs(tiparm(change_scroll_region, top, bot),
                            0, __cputchar);
                        __mvcur(oy, ox, 0, 0, 1);
                        tputs(cursor_home, 0, __cputchar);
                        __mvcur(0, 0, bot, 0, 1);
                        if (parm_index != NULL)
-                               tputs(vtparm(parm_index, n),
+                               tputs(tiparm(parm_index, n),
                                    0, __cputchar);
                        else
                                for (i = 0; i < n; i++)
                                        tputs(scroll_forward, 0, __cputchar);
-                       tputs(vtparm(change_scroll_region,
+                       tputs(tiparm(change_scroll_region,
                            0, (int) __virtscr->maxy - 1), 0, __cputchar);
                        __mvcur(bot, 0, 0, 0, 1);
                        tputs(cursor_home, 0, __cputchar);
@@ -1595,11 +1606,11 @@ scrolln(starts, startw, curs, bot, top)
                /* Scroll up the block. */
                if (parm_index != NULL && top == 0) {
                        __mvcur(oy, ox, bot, 0, 1);
-                       tputs(vtparm(parm_index, n), 0, __cputchar);
+                       tputs(tiparm(parm_index, n), 0, __cputchar);
                } else
                        if (parm_delete_line != NULL) {
                                __mvcur(oy, ox, top, 0, 1);
-                               tputs(vtparm(parm_delete_line, n),
+                               tputs(tiparm(parm_delete_line, n),
                                    0, __cputchar);
                        } else
                                if (delete_line != NULL) {
@@ -1619,7 +1630,7 @@ scrolln(starts, startw, curs, bot, top)
                /* Push down the bottom region. */
                __mvcur(top, 0, bot - n + 1, 0, 1);
                if (parm_insert_line != NULL)
-                       tputs(vtparm(parm_insert_line, n), 0, __cputchar);
+                       tputs(tiparm(parm_insert_line, n), 0, __cputchar);
                else
                        if (insert_line != NULL)
                                for (i = 0; i < n; i++)
@@ -1641,19 +1652,19 @@ scrolln(starts, startw, curs, bot, top)
                    top > 3 ||
                    bot + 3 < __virtscr->maxy) && scroll_reverse != NULL)))
                {
-                       tputs(vtparm(change_scroll_region, top, bot),
+                       tputs(tiparm(change_scroll_region, top, bot),
                            0, __cputchar);
                        __mvcur(oy, ox, 0, 0, 1);
                        tputs(cursor_home, 0, __cputchar);
                        __mvcur(0, 0, top, 0, 1);
 
                        if (parm_rindex != NULL)
-                               tputs(vtparm(parm_rindex, -n),
+                               tputs(tiparm(parm_rindex, -n),
                                    0, __cputchar);
                        else
                                for (i = n; i < 0; i++)
                                        tputs(scroll_reverse, 0, __cputchar);
-                       tputs(vtparm(change_scroll_region,
+                       tputs(tiparm(change_scroll_region,
                            0, (int) __virtscr->maxy - 1), 0, __cputchar);
                        __mvcur(top, 0, 0, 0, 1);
                        tputs(cursor_home, 0, __cputchar);
@@ -1664,10 +1675,10 @@ scrolln(starts, startw, curs, bot, top)
                /* Preserve the bottom lines. */
                __mvcur(oy, ox, bot + n + 1, 0, 1);
                if (parm_rindex != NULL && bot == __virtscr->maxy)
-                       tputs(vtparm(parm_rindex, -n), 0, __cputchar);
+                       tputs(tiparm(parm_rindex, -n), 0, __cputchar);
                else
                        if (parm_delete_line != NULL)
-                               tputs(vtparm(parm_delete_line, -n),
+                               tputs(tiparm(parm_delete_line, -n),
                                    0, __cputchar);
                        else
                                if (delete_line != NULL)
@@ -1686,7 +1697,7 @@ scrolln(starts, startw, curs, bot, top)
                /* Scroll the block down. */
                __mvcur(bot + n + 1, 0, top, 0, 1);
                if (parm_insert_line != NULL)
-                       tputs(vtparm(parm_insert_line, -n), 0, __cputchar);
+                       tputs(tiparm(parm_insert_line, -n), 0, __cputchar);
                else
                        if (insert_line != NULL)
                                for (i = n; i < 0; i++)
index deeb47365b8adb67f8014d502a0c3a1cbd396056..bbcf8f127e72cadc2381dc186f841465b577b870 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: scanw.c,v 1.20 2009/07/07 10:16:52 joerg Exp $ */
+/*     $NetBSD: scanw.c,v 1.21 2011/07/17 20:54:34 joerg Exp $ */
 
 /*
  * Copyright (c) 1981, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)scanw.c    8.3 (Berkeley) 5/4/94";
 #else
-__RCSID("$NetBSD: scanw.c,v 1.20 2009/07/07 10:16:52 joerg Exp $");
+__RCSID("$NetBSD: scanw.c,v 1.21 2011/07/17 20:54:34 joerg Exp $");
 #endif
 #endif                         /* not lint */
 
@@ -113,7 +113,7 @@ mvwscanw(WINDOW * win, int y, int x, const char *fmt,...)
  *     This routine actually executes the scanf from the window.
  */
 int
-vw_scanw(WINDOW *win, const char *fmt, _BSD_VA_LIST_ ap)
+vw_scanw(WINDOW *win, const char *fmt, va_list ap)
 {
 
        char    buf[1024];
index 832fe67499fe79ab0ad60f73acb3406bd7bbcb28..be900d8c4f4e1608f7ef69b719374453c9a1cf04 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: setterm.c,v 1.47 2010/02/11 11:45:47 roy Exp $ */
+/*     $NetBSD: setterm.c,v 1.49 2012/04/21 12:27:28 roy Exp $ */
 
 /*
  * Copyright (c) 1981, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)setterm.c  8.8 (Berkeley) 10/25/94";
 #else
-__RCSID("$NetBSD: setterm.c,v 1.47 2010/02/11 11:45:47 roy Exp $");
+__RCSID("$NetBSD: setterm.c,v 1.49 2012/04/21 12:27:28 roy Exp $");
 #endif
 #endif /* not lint */
 
@@ -82,7 +82,7 @@ _cursesi_setterm(char *type, SCREEN *screen)
        __CTRACE(__CTRACE_INIT, "setterm: tty = %s\n", type);
 #endif
 
-       /* Try TIOCGWINSZ, and, if it fails, the termcap entry. */
+       /* Try TIOCGWINSZ, and, if it fails, the terminfo entry. */
        if (ioctl(fileno(screen->outfd), TIOCGWINSZ, &win) != -1 &&
            win.ws_row != 0 && win.ws_col != 0) {
                screen->LINES = win.ws_row;
@@ -127,17 +127,6 @@ _cursesi_setterm(char *type, SCREEN *screen)
        screen->padchar = t_pad_char(screen->term) ?
            t_pad_char(screen->term)[0] : 0; 
 
-       /* Get full name of terminal */
-       if (unknown) {
-               strcpy(screen->ttytype, "dumb");
-               return ERR;
-       }
-       if (screen->term->desc == NULL)
-               screen->ttytype[0] = '\0';
-       else
-               strlcpy(screen->ttytype, screen->term->desc,
-                   sizeof(screen->ttytype));
-
        /* If no scrolling commands, no quick change. */
        screen->noqch =
            (t_change_scroll_region(screen->term) == NULL ||
index 97c9f92d6b8fd947359f10a616abc86fb7de7a87..f4709208eb7747f126f7696274726a3e942119d1 100644 (file)
@@ -1,2 +1,8 @@
+#      $NetBSD: shlib_version,v 1.40 2009/01/11 03:07:47 christos Exp $
+#      Remember to update distrib/sets/lists/base/shl.* when changing
+#      Remember to run `make fileio.h` when changing
+#      Remember to increment the major numbers of both libform and libmenu
+#      when the libcurses major number increments.
+#
 major=0
 minor=0
index 51d03225f9626cd9eea1900be00663a6eddfce72..0f010626595e125e710b0adc91ab6d49cadcbaaa 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: tstp.c,v 1.38 2010/02/03 15:34:40 roy Exp $    */
+/*     $NetBSD: tstp.c,v 1.39 2011/08/29 11:07:38 christos Exp $       */
 
 /*
  * Copyright (c) 1981, 1993, 1994
 #if 0
 static char sccsid[] = "@(#)tstp.c     8.3 (Berkeley) 5/4/94";
 #else
-__RCSID("$NetBSD: tstp.c,v 1.38 2010/02/03 15:34:40 roy Exp $");
+__RCSID("$NetBSD: tstp.c,v 1.39 2011/08/29 11:07:38 christos Exp $");
 #endif
 #endif                         /* not lint */
 
-#ifndef TCSASOFT
-#define TCSASOFT 0
-#endif
-
 #include <sys/ioctl.h>
 
 #include <errno.h>
@@ -59,6 +55,9 @@ static void (*otstpfn)
 __P((int)) = SIG_DFL;
 
 static struct sigaction        owsa;
+#ifndef TCSASOFT
+#define TCSASOFT 0
+#endif
 
 /*
  * stop_signal_handler --
@@ -247,9 +246,8 @@ __stopwin(void)
 
        _cursesi_screen->endwin = 1;
 
-       return (tcsetattr(fileno(_cursesi_screen->infd),
-                         __tcaction ? TCSASOFT | TCSADRAIN : TCSADRAIN,
-                         &_cursesi_screen->orig_termios) ? ERR : OK);
+       return tcsetattr(fileno(_cursesi_screen->infd), TCSASOFT | TCSADRAIN,
+           &_cursesi_screen->orig_termios) ? ERR : OK;
 }
 
 
@@ -303,9 +301,8 @@ __restartwin(void)
                         &_cursesi_screen->orig_termios);
 
        /* Reset the terminal state to the mode just before we stopped. */
-       (void) tcsetattr(fileno(_cursesi_screen->infd),
-                        __tcaction ? TCSASOFT | TCSADRAIN : TCSADRAIN,
-                        &_cursesi_screen->save_termios);
+       (void) tcsetattr(fileno(_cursesi_screen->infd), TCSASOFT | TCSADRAIN,
+           &_cursesi_screen->save_termios);
 
        /* Restore colours */
        __restore_colors();
@@ -329,28 +326,27 @@ def_prog_mode(void)
        if (_cursesi_screen->endwin)
                return ERR;
 
-       return (tcgetattr(fileno(_cursesi_screen->infd),
-                         &_cursesi_screen->save_termios) ? ERR : OK);
+       return tcgetattr(fileno(_cursesi_screen->infd),
+           &_cursesi_screen->save_termios) ? ERR : OK;
 }
 
 int
 reset_prog_mode(void)
 {
 
-       return tcsetattr(fileno(_cursesi_screen->infd),
-                        __tcaction ? TCSASOFT | TCSADRAIN : TCSADRAIN,
-                        &_cursesi_screen->save_termios) ? ERR : OK;
+       return tcsetattr(fileno(_cursesi_screen->infd), TCSASOFT | TCSADRAIN,
+           &_cursesi_screen->save_termios) ? ERR : OK;
 }
 
 int
 def_shell_mode(void)
 {
-       return (tcgetattr(fileno(_cursesi_screen->infd),
-                         &_cursesi_screen->orig_termios) ? ERR : OK);
+       return tcgetattr(fileno(_cursesi_screen->infd),
+           &_cursesi_screen->orig_termios) ? ERR : OK;
 }
 
 int
 reset_shell_mode(void)
 {
-       return (__stopwin());
+       return __stopwin();
 }
index 3f98b984fb17e9380e543c97bf800ddfaca7bcd3..20ca4218457412abec843c5338db5dd9adb9ee44 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: tty.c,v 1.42 2010/02/03 15:34:40 roy Exp $     */
+/*     $NetBSD: tty.c,v 1.43 2011/08/29 11:07:38 christos Exp $        */
 
 /*-
  * Copyright (c) 1992, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)tty.c      8.6 (Berkeley) 1/10/95";
 #else
-__RCSID("$NetBSD: tty.c,v 1.42 2010/02/03 15:34:40 roy Exp $");
+__RCSID("$NetBSD: tty.c,v 1.43 2011/08/29 11:07:38 christos Exp $");
 #endif
 #endif                         /* not lint */
 
@@ -56,13 +56,12 @@ __RCSID("$NetBSD: tty.c,v 1.42 2010/02/03 15:34:40 roy Exp $");
  * those attributes at each change, or at least when stopped and restarted.
  * See also the comments in getterm().
  */
-#ifdef TCSASOFT
-int    __tcaction = 1;                 /* Ignore hardware settings. */
-#else
-#define TCSASOFT 0
-int    __tcaction = 0;
+#ifndef TCSASOFT
+#define        TCSASOFT        0
 #endif
 
+int __tcaction = TCSASOFT != 0;                /* Ignore hardware settings */
+
 #ifndef        OXTABS
 #ifdef XTABS                   /* SMI uses XTABS. */
 #define        OXTABS  XTABS
@@ -116,7 +115,7 @@ _cursesi_gettmode(SCREEN *screen)
                        screen->notty = TRUE;
                        __GT = 0;
                        __NONL = 0;
-                       return (OK);
+                       return OK;
                }
        }
 
@@ -144,6 +143,7 @@ _cursesi_gettmode(SCREEN *screen)
        screen->rawt.c_oflag &= ~OPOST;
        screen->rawt.c_lflag &= ~(ISIG | IEXTEN);
 
+#if TCSASOFT == 0
        /*
         * In general, curses should leave hardware-related settings alone.
         * This includes parity and word size.  Older versions set the tty
@@ -152,15 +152,14 @@ _cursesi_gettmode(SCREEN *screen)
         * parity and word size, the TCSASOFT bit has to be removed from the
         * calls that switch to/from "raw" mode.
         */
-       if (!__tcaction) {
-               screen->rawt.c_iflag &= ~ISTRIP;
-               screen->rawt.c_cflag &= ~(CSIZE | PARENB);
-               screen->rawt.c_cflag |= CS8;
-       }
+       screen->rawt.c_iflag &= ~ISTRIP;
+       screen->rawt.c_cflag &= ~(CSIZE | PARENB);
+       screen->rawt.c_cflag |= CS8;
+#endif
 
        screen->curt = &screen->baset;
-       return (tcsetattr(fileno(screen->infd), __tcaction ?
-           TCSASOFT | TCSADRAIN : TCSADRAIN, screen->curt) ? ERR : OK);
+       return tcsetattr(fileno(screen->infd), TCSASOFT | TCSADRAIN,
+           screen->curt) ? ERR : OK;
 }
 
 /*
@@ -181,9 +180,8 @@ raw(void)
        _cursesi_screen->curt = &_cursesi_screen->rawt;
        if (_cursesi_screen->notty == TRUE)
                return OK;
-       return (tcsetattr(fileno(_cursesi_screen->infd), __tcaction ?
-                         TCSASOFT | TCSADRAIN : TCSADRAIN,
-                         _cursesi_screen->curt) ? ERR : OK);
+       return tcsetattr(fileno(_cursesi_screen->infd), TCSASOFT | TCSADRAIN,
+           _cursesi_screen->curt) ? ERR : OK;
 }
 
 /*
@@ -204,9 +202,8 @@ noraw(void)
        if (_cursesi_screen->notty == TRUE)
                return OK;
        _cursesi_screen->curt = &_cursesi_screen->baset;
-       return (tcsetattr(fileno(_cursesi_screen->infd), __tcaction ?
-                         TCSASOFT | TCSADRAIN : TCSADRAIN,
-                         _cursesi_screen->curt) ? ERR : OK);
+       return tcsetattr(fileno(_cursesi_screen->infd), TCSASOFT | TCSADRAIN,
+           _cursesi_screen->curt) ? ERR : OK;
 }
 
 /*
@@ -228,9 +225,8 @@ cbreak(void)
                return OK;
        _cursesi_screen->curt = _cursesi_screen->useraw ?
                &_cursesi_screen->rawt : &_cursesi_screen->cbreakt;
-       return (tcsetattr(fileno(_cursesi_screen->infd), __tcaction ?
-                         TCSASOFT | TCSADRAIN : TCSADRAIN,
-                         _cursesi_screen->curt) ? ERR : OK);
+       return tcsetattr(fileno(_cursesi_screen->infd), TCSASOFT | TCSADRAIN,
+           _cursesi_screen->curt) ? ERR : OK;
 }
 
 /*
@@ -258,9 +254,8 @@ nocbreak(void)
        _cursesi_screen->half_delay = FALSE;
        _cursesi_screen->curt = _cursesi_screen->useraw ?
                &_cursesi_screen->rawt : &_cursesi_screen->baset;
-       return (tcsetattr(fileno(_cursesi_screen->infd), __tcaction ?
-                         TCSASOFT | TCSADRAIN : TCSADRAIN,
-                         _cursesi_screen->curt) ? ERR : OK);
+       return tcsetattr(fileno(_cursesi_screen->infd), TCSASOFT | TCSADRAIN,
+           _cursesi_screen->curt) ? ERR : OK;
 }
 
 /*
@@ -303,8 +298,8 @@ __delay(void)
        _cursesi_screen->baset.c_cc[VMIN] = 1;
        _cursesi_screen->baset.c_cc[VTIME] = 0;
 
-       if (tcsetattr(fileno(_cursesi_screen->infd), __tcaction ?
-           TCSASOFT : TCSANOW, _cursesi_screen->curt)) {
+       if (tcsetattr(fileno(_cursesi_screen->infd), TCSASOFT | TCSANOW, 
+           _cursesi_screen->curt)) {
                __restore_termios();
                return ERR;
        }
@@ -331,8 +326,8 @@ __nodelay(void)
        _cursesi_screen->baset.c_cc[VMIN] = 0;
        _cursesi_screen->baset.c_cc[VTIME] = 0;
 
-       if (tcsetattr(fileno(_cursesi_screen->infd), __tcaction ?
-           TCSASOFT : TCSANOW, _cursesi_screen->curt)) {
+       if (tcsetattr(fileno(_cursesi_screen->infd), TCSASOFT | TCSANOW,
+           _cursesi_screen->curt)) {
                __restore_termios();
                return ERR;
        }
@@ -391,9 +386,8 @@ __timeout(int delay)
        _cursesi_screen->baset.c_cc[VMIN] = 0;
        _cursesi_screen->baset.c_cc[VTIME] = delay;
 
-       if (tcsetattr(fileno(_cursesi_screen->infd),
-                         __tcaction ? TCSASOFT | TCSANOW : TCSANOW,
-                         _cursesi_screen->curt)) {
+       if (tcsetattr(fileno(_cursesi_screen->infd), TCSASOFT | TCSANOW,
+           _cursesi_screen->curt)) {
                __restore_termios();
                return ERR;
        }
@@ -420,9 +414,8 @@ __notimeout(void)
        _cursesi_screen->baset.c_cc[VMIN] = 1;
        _cursesi_screen->baset.c_cc[VTIME] = 0;
 
-       return (tcsetattr(fileno(_cursesi_screen->infd),
-                         __tcaction ? TCSASOFT | TCSANOW : TCSANOW,
-                         _cursesi_screen->curt) ? ERR : OK);
+       return tcsetattr(fileno(_cursesi_screen->infd), TCSASOFT | TCSANOW,
+           _cursesi_screen->curt) ? ERR : OK;
 }
 
 int
@@ -436,7 +429,7 @@ echo(void)
                __restartwin();
 
        __echoit = 1;
-       return (OK);
+       return OK;
 }
 
 int
@@ -450,7 +443,7 @@ noecho(void)
                __restartwin();
 
        __echoit = 0;
-       return (OK);
+       return OK;
 }
 
 int
@@ -474,9 +467,8 @@ nl(void)
 
        _cursesi_screen->nl = 1;
        _cursesi_screen->pfast = _cursesi_screen->rawmode;
-       return (tcsetattr(fileno(_cursesi_screen->infd), __tcaction ?
-                         TCSASOFT | TCSADRAIN : TCSADRAIN,
-                         _cursesi_screen->curt) ? ERR : OK);
+       return tcsetattr(fileno(_cursesi_screen->infd), TCSASOFT | TCSADRAIN,
+           _cursesi_screen->curt) ? ERR : OK;
 }
 
 int
@@ -500,9 +492,8 @@ nonl(void)
 
        _cursesi_screen->nl = 0;
        __pfast = 1;
-       return (tcsetattr(fileno(_cursesi_screen->infd), __tcaction ?
-                         TCSASOFT | TCSADRAIN : TCSADRAIN,
-                         _cursesi_screen->curt) ? ERR : OK);
+       return tcsetattr(fileno(_cursesi_screen->infd), TCSASOFT | TCSADRAIN,
+           _cursesi_screen->curt) ? ERR : OK;
 }
 
 #ifndef _CURSES_USE_MACROS
@@ -539,9 +530,8 @@ intrflush(WINDOW *win, bool bf)     /*ARGSUSED*/
        }
 
        __pfast = 1;
-       return (tcsetattr(fileno(_cursesi_screen->infd), __tcaction ?
-                         TCSASOFT | TCSADRAIN : TCSADRAIN,
-                         _cursesi_screen->curt) ? ERR : OK);
+       return tcsetattr(fileno(_cursesi_screen->infd), TCSASOFT | TCSADRAIN,
+           _cursesi_screen->curt) ? ERR : OK;
 }
 
 void
@@ -588,14 +578,14 @@ endwin(void)
 bool
 isendwin(void)
 {
-       return (_cursesi_screen->endwin ? TRUE : FALSE);
+       return _cursesi_screen->endwin ? TRUE : FALSE;
 }
 
 int
 flushinp(void)
 {
        (void) fpurge(_cursesi_screen->infd);
-       return (OK);
+       return OK;
 }
 
 /*
@@ -609,8 +599,8 @@ savetty(void)
 {
        if (_cursesi_screen->notty == TRUE)
                return OK;
-       return (tcgetattr(fileno(_cursesi_screen->infd),
-                         &_cursesi_screen->savedtty) ? ERR : OK);
+       return tcgetattr(fileno(_cursesi_screen->infd),
+           &_cursesi_screen->savedtty) ? ERR : OK;
 }
 
 int
@@ -618,9 +608,8 @@ resetty(void)
 {
        if (_cursesi_screen->notty == TRUE)
                return OK;
-       return (tcsetattr(fileno(_cursesi_screen->infd), __tcaction ?
-                         TCSASOFT | TCSADRAIN : TCSADRAIN,
-                         &_cursesi_screen->savedtty) ? ERR : OK);
+       return tcsetattr(fileno(_cursesi_screen->infd), TCSASOFT | TCSADRAIN,
+           &_cursesi_screen->savedtty) ? ERR : OK;
 }
 
 /*
index cae7475069bc74656fcbf6f781c8623d3ef54c79..f1697f96ce536174f107ec2841510db46aaab9f8 100644 (file)
@@ -1,14 +1,15 @@
-#      $NetBSD: Makefile,v 1.12 2010/07/06 05:59:53 mrg Exp $
+#      $NetBSD: Makefile,v 1.22 2012/03/21 05:37:44 matt Exp $
+
+.include <bsd.own.mk>
 
 .if defined(__MINIX)
-.include "minix-config.inc"
+CPPFLAGS+=     -D_NETBSD_SOURCE
+MKLINKLIB=     yes
 .endif
 USE_SHLIBDIR=  yes
 
-# LSC MINIX UNtil the library is fixed..
-NOGCCERROR=yes
 LIB=           terminfo
-WARNS=         4
+WARNS?=                5
 
 CPPFLAGS+=     -I${.CURDIR}
 
@@ -17,15 +18,18 @@ SRCS+=              compile.c hash.c
 INCS=          term.h
 INCSDIR=       /usr/include
 
+COPTS.tparm.c = -Wno-format-nonliteral
+
 MAN=           terminfo.3 terminfo.5
 MLINKS=                terminfo.3 setupterm.3 \
                terminfo.3 set_curterm.3 terminfo.3 del_curterm.3 \
+               terminfo.3 termname.3 terminfo.3 longname.3 \
                terminfo.3 tigetnum.3 terminfo.3 tigetflag.3 \
                terminfo.3 tigetstr.3 terminfo.3 tparm.3 terminfo.3 tputs.3 \
                terminfo.3 putp.3 \
                terminfo.3 ti_setupterm.3 terminfo.3 ti_getflag.3 \
                terminfo.3 ti_getnum.3 terminfo.3 ti_getstr.3 \
-               terminfo.3 t_parm.3 terminfo.3 t_vparm.3 \
+               terminfo.3 tiparm.3 terminfo.3 ti_tiparm.3 \
                terminfo.3 ti_puts.3 terminfo.3 ti_putp.3
 
 # Build in termcap emulation
@@ -35,30 +39,19 @@ MAN+=               termcap.3
 MLINKS+=       termcap.3 tgetent.3 termcap.3 tgetflag.3 termcap.3 tgetnum.3 \
                termcap.3 tgetstr.3 termcap.3 tgoto.3
 
-# Generate our string and hash tables
-hash:
-               @echo "Generating terminfo hash"
-               cd ${.CURDIR} && ${HOST_SH} ./genhash >hash.c
-               @echo "Generating termcap hash"
-               cd ${.CURDIR} && ${HOST_SH} ./genthash >termcap_hash.c
+CPPFLAGS+=     -I${.OBJDIR}
+
+.include <Makefile.hash>
 
 # Generate our man pages
-terminfo.5: terminfo.5.in term.h termcap_map.c
+terminfo.5: genman terminfo.5.in term.h termcap_map.c
                @echo "Generating terminfo man pages"
-               cd ${.CURDIR} && ${HOST_SH} ./genman >${.OBJDIR}/$@
+               ${SCRIPT_ENV} ${HOST_SH} ${.ALLSRC} > ${.TARGET}
 
 CLEANFILES+=   terminfo.5
 
-# Allow terminfo descriptions to be compiled into libterminfo
-compiled_terms:
-               @echo "Generating compiled terminfo descriptions"
-               cd ${.CURDIR} && ${HOST_SH} ./genterms >compiled_terms.c
-
 man: terminfo.5
 
-gen: hash compiled_terms man
-
-.include <bsd.own.mk>
 .include <bsd.shlib.mk>
 
 .if ${MKLINKLIB} != "no"
diff --git a/lib/libterminfo/Makefile.hash b/lib/libterminfo/Makefile.hash
new file mode 100644 (file)
index 0000000..c8887df
--- /dev/null
@@ -0,0 +1,32 @@
+#      $NetBSD: Makefile.hash,v 1.6 2012/08/20 15:44:02 joerg Exp $
+
+SCRIPT_ENV=    \
+       TOOL_AWK=${TOOL_AWK:Q} \
+       TOOL_NBPERF=${TOOL_NBPERF:Q} \
+       TOOL_SED=${TOOL_SED:Q} \
+       TOOL_SORT=${TOOL_SORT:Q} \
+       TOOL_TIC=${TOOL_TIC:Q} \
+       TERMINFO=${NETBSDSRCDIR}/share/terminfo/terminfo
+
+PARSEDIR:=${.PARSEDIR}
+# Generate our string and hash tables
+hash.c: genhash term.h
+               @echo "Generating terminfo hash"
+               ${SCRIPT_ENV} ${HOST_SH} ${.ALLSRC} > ${.TARGET}
+
+termcap_hash.c: genthash termcap_map.c
+               @echo "Generating termcap hash"
+               ${SCRIPT_ENV} ${HOST_SH} ${.ALLSRC} > ${.TARGET}
+
+# Allow terminfo descriptions to be compiled into libterminfo
+compiled_terms.c: genterms term.h ${NETBSDSRCDIR}/share/terminfo/terminfo
+               @echo "Generating compiled terminfo descriptions"
+               ${SCRIPT_ENV} ${HOST_SH} ${.ALLSRC} > ${.TARGET}
+
+.if ${USETOOLS} == "yes"
+compiled_terms.c: ${TOOL_TIC}
+.endif
+
+DPSRCS+=       hash.c termcap_hash.c compiled_terms.c
+
+CLEANFILES+=   hash.c termcap_hash.c compiled_terms.c
index e4a9742323128d758f006ace8df3902557eedb1d..32da55a8cade6207f8a63039c42b54063d306726 100644 (file)
@@ -1,7 +1,7 @@
-/* $NetBSD: compile.c,v 1.4 2010/03/02 14:11:11 roy Exp $ */
+/* $NetBSD: compile.c,v 1.8 2012/06/03 23:19:10 joerg Exp $ */
 
 /*
- * Copyright (c) 2009, 2010 The NetBSD Foundation, Inc.
+ * Copyright (c) 2009, 2010, 2011 The NetBSD Foundation, Inc.
  *
  * This code is derived from software contributed to The NetBSD Foundation
  * by Roy Marples.
@@ -32,7 +32,7 @@
 #endif
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: compile.c,v 1.4 2010/03/02 14:11:11 roy Exp $");
+__RCSID("$NetBSD: compile.c,v 1.8 2012/06/03 23:19:10 joerg Exp $");
 
 #if !HAVE_NBTOOL_CONFIG_H || HAVE_SYS_ENDIAN_H
 #include <sys/endian.h>
@@ -51,7 +51,7 @@ __RCSID("$NetBSD: compile.c,v 1.4 2010/03/02 14:11:11 roy Exp $");
 #include <term_private.h>
 #include <term.h>
 
-static void __attribute__((__format__(__printf__, 2, 3)))
+static void __printflike(2, 3)
 dowarn(int flags, const char *fmt, ...)
 {
        va_list va;
@@ -74,7 +74,7 @@ _ti_grow_tbuf(TBUF *tbuf, size_t len)
 
        l = tbuf->bufpos + len;
        if (l > tbuf->buflen) {
-               if (tbuf->bufpos == 0)
+               if (tbuf->buflen == 0)
                        buf = malloc(l);
                else
                        buf = realloc(tbuf->buf, l);
@@ -239,12 +239,7 @@ _ti_flatten(uint8_t **buf, const TIC *tic)
                return -1;
        
        cap = *buf;
-       if (alen == 0 && dlen == 0 && tic->flags.bufpos == 0 &&
-           tic->nums.bufpos == 0 && tic->strs.bufpos == 0 &&
-           tic->extras.bufpos == 0)
-               *cap++ = 0; /* alias */
-       else
-               *cap++ = 2; /* version */
+       *cap++ = 1;
        le16enc(cap, len);
        cap += sizeof(uint16_t);
        memcpy(cap, tic->name, len);
@@ -344,7 +339,7 @@ encode_string(const char *term, const char *cap, TBUF *tbuf, const char *str,
                                if (ch == '?')
                                        ch = '\177';
                                else if ((ch &= 037) == 0)
-                                       ch = 128;
+                                       ch = (char)128;
                        }
                        *p++ = ch;
                        last = ch;
@@ -452,7 +447,8 @@ _ti_compile(char *cap, int flags)
 {
        char *token, *p, *e, *name, *desc, *alias;
        signed char flag;
-       long num;
+       long cnum;
+       short num;
        ssize_t ind;
        size_t len;
        TBUF buf;
@@ -564,17 +560,18 @@ _ti_compile(char *cap, int flags)
                            _ti_find_cap(&tic->nums, 'n', ind) != NULL)
                                continue;
 
-                       num = strtol(p, &e, 0);
+                       cnum = strtol(p, &e, 0);
                        if (*e != '\0') {
                                dowarn(flags, "%s: %s: not a number",
                                    tic->name, token);
                                continue;
                        }
-                       if (!VALID_NUMERIC(num)) {
+                       if (!VALID_NUMERIC(cnum)) {
                                dowarn(flags, "%s: %s: number out of range",
                                    tic->name, token);
                                continue;
                        }
+                       num = (short)cnum;
                        if (ind == -1)
                                _ti_store_extra(tic, 1, token, 'n', -1,
                                    num, NULL, 0, flags);
@@ -608,7 +605,7 @@ _ti_compile(char *cap, int flags)
                                le16enc(tic->nums.buf + tic->nums.bufpos, ind);
                                tic->nums.bufpos += sizeof(uint16_t);
                                le16enc(tic->nums.buf + tic->nums.bufpos,
-                                       CANCELLED_NUMERIC);
+                                       (uint16_t)CANCELLED_NUMERIC);
                                tic->nums.bufpos += sizeof(uint16_t);
                                tic->nums.entries++;
                                continue;
@@ -657,6 +654,7 @@ _ti_freetic(TIC *tic)
                free(tic->name);
                free(tic->alias);
                free(tic->desc);
+               free(tic->extras.buf);
                free(tic->flags.buf);
                free(tic->nums.buf);
                free(tic->strs.buf);
diff --git a/lib/libterminfo/compiled_terms.c b/lib/libterminfo/compiled_terms.c
deleted file mode 100644 (file)
index 4ef9184..0000000
+++ /dev/null
@@ -1,595 +0,0 @@
-/* $NetBSD$ */
-/* * * MODIFIED FOR MINIX * * */
-/* DO NOT EDIT
- * Regenerate by doing ``make compiled_terms''
- */
-
-struct compiled_term {
-       const char *name;
-       const char *cap;
-       size_t caplen;
-};
-
-const struct compiled_term compiled_terms[] = {
-       {
-               "ansi",
-               "\002\005\000\141\156\163\151\000\000\000\000\000\016\000\004"
-               "\000\036\000\001\001\000\001\026\000\001\027\000\001\032\000"
-               "\006\000\016\000\010\000\025\000\003\000\021\000\100\000\004"
-               "\000\120\000\007\000\010\000\012\000\030\000\142\003\107\000"
-               "\200\001\013\000\033\133\045\151\045\144\073\045\144\122\000"
-               "\201\001\005\000\033\133\066\156\000\202\001\023\000\033\133"
-               "\077\045\133\073\060\061\062\063\064\065\066\067\070\071\135"
-               "\143\000\203\001\004\000\033\133\143\000\052\001\011\000\033"
-               "\133\063\071\073\064\071\155\000\132\001\012\000\033\133\064"
-               "\045\160\061\045\144\155\000\133\001\012\000\033\133\063\045"
-               "\160\061\045\144\155\000\110\000\005\000\033\133\070\155\000"
-               "\134\001\126\000\033\133\060\073\061\060\045\077\045\160\061"
-               "\045\164\073\067\045\073\045\077\045\160\062\045\164\073\064"
-               "\045\073\045\077\045\160\063\045\164\073\067\045\073\045\077"
-               "\045\160\064\045\164\073\065\045\073\045\077\045\160\066\045"
-               "\164\073\061\045\073\045\077\045\160\067\045\164\073\070\045"
-               "\073\045\077\045\160\071\045\164\073\061\061\045\073\155\000"
-               "\063\000\005\000\033\133\065\155\000\064\000\005\000\033\133"
-               "\061\155\000\105\000\005\000\033\133\067\155\000\135\000\006"
-               "\000\033\133\061\060\155\000\140\000\004\000\033\133\155\000"
-               "\143\000\004\000\033\133\155\000\125\000\010\000\033\133\060"
-               "\073\061\060\155\000\103\000\006\000\033\133\061\061\155\000"
-               "\112\000\005\000\033\133\067\155\000\116\000\005\000\033\133"
-               "\064\155\000\000\000\077\000\053\020\054\021\055\030\056\031"
-               "\060\333\140\004\141\261\146\370\147\361\150\260\152\331\153"
-               "\277\154\332\155\300\156\305\157\176\160\304\161\304\162\304"
-               "\163\137\164\303\165\264\166\301\167\302\170\263\171\363\172"
-               "\362\173\343\174\330\175\234\176\376\000\123\000\006\000\033"
-               "\133\061\060\155\000\061\000\006\000\033\133\061\061\155\000"
-               "\063\001\011\000\033\133\045\160\061\045\144\104\000\056\001"
-               "\011\000\033\133\045\160\061\045\144\102\000\065\001\011\000"
-               "\033\133\045\160\061\045\144\103\000\070\001\011\000\033\133"
-               "\045\160\061\045\144\101\000\054\001\011\000\033\133\045\160"
-               "\061\045\144\120\000\055\001\011\000\033\133\045\160\061\045"
-               "\144\115\000\122\000\011\000\033\133\045\160\061\045\144\130"
-               "\000\022\000\005\000\033\133\061\113\000\027\000\013\000\033"
-               "\133\045\151\045\160\061\045\144\107\000\166\001\004\000\033"
-               "\133\111\000\060\001\011\000\033\133\045\160\061\045\144\100"
-               "\000\062\001\011\000\033\133\045\160\061\045\144\114\000\061"
-               "\001\011\000\033\133\045\160\061\045\144\123\000\173\000\002"
-               "\000\010\000\175\000\004\000\033\133\132\000\326\000\004\000"
-               "\033\133\104\000\212\000\004\000\033\133\102\000\351\000\004"
-               "\000\033\133\103\000\015\001\004\000\033\133\101\000\324\000"
-               "\004\000\033\133\114\000\102\001\005\000\033\133\064\151\000"
-               "\103\001\005\000\033\133\065\151\000\047\001\005\000\015\033"
-               "\133\123\000\107\001\024\000\045\160\061\045\143\033\133\045"
-               "\160\062\045\173\061\175\045\055\045\144\142\000\067\001\011"
-               "\000\033\133\045\160\061\045\144\124\000\125\001\004\000\033"
-               "\050\102\000\126\001\004\000\033\051\102\000\127\001\004\000"
-               "\033\052\102\000\130\001\004\000\033\053\102\000\017\000\005"
-               "\000\033\133\062\147\000\117\001\013\000\033\133\045\151\045"
-               "\160\061\045\144\144\000\003\000\002\000\007\000\002\000\004"
-               "\000\033\133\132\000\021\000\007\000\033\133\110\033\133\112"
-               "\000\007\000\002\000\015\000\036\000\004\000\033\133\104\000"
-               "\033\000\004\000\033\133\102\000\041\000\004\000\033\133\103"
-               "\000\032\000\021\000\033\133\045\151\045\160\061\045\144\073"
-               "\045\160\062\045\144\110\000\043\000\004\000\033\133\101\000"
-               "\047\000\004\000\033\133\120\000\050\000\004\000\033\133\115"
-               "\000\024\000\004\000\033\133\112\000\023\000\004\000\033\133"
-               "\113\000\034\000\004\000\033\133\110\000\153\001\003\000\033"
-               "\110\000\166\000\004\000\033\133\114\000\122\001\002\000\012"
-               "\000\323\000\004\000\033\133\110\000\020\000\002\000\003\000"
-               "\101\130\000\146\001\003\000\142\163\000\146\001",
-               942
-       },
-       {
-               "dumb",
-               "\002\005\000\144\165\155\142\000\000\000\000\000\005\000\001"
-               "\000\001\000\001\006\000\001\000\004\000\120\000\032\000\004"
-               "\000\003\000\002\000\007\000\007\000\002\000\015\000\033\000"
-               "\002\000\012\000\122\001\002\000\012\000\000\000",
-               57
-       },
-       {
-               "minix",
-               "\002\006\000\155\151\156\151\170\000\000\000\000\000\010\000"
-               "\002\000\001\000\001\011\000\001\026\000\005\000\004\000\120"
-               "\000\007\000\010\000\012\000\031\000\016\000\010\000\021\000"
-               "\100\000\342\003\133\000\003\000\002\000\007\000\063\000\005"
-               "\000\033\133\065\155\000\064\000\005\000\033\133\061\155\000"
-               "\021\000\010\000\033\133\110\033\133\060\112\000\007\000\002"
-               "\000\015\000\063\001\011\000\033\133\045\160\061\045\144\104"
-               "\000\036\000\002\000\010\000\056\001\011\000\033\133\045\160"
-               "\061\045\144\102\000\033\000\004\000\033\133\102\000\065\001"
-               "\011\000\033\133\045\160\061\045\144\103\000\041\000\004\000"
-               "\033\133\103\000\032\000\021\000\033\133\045\151\045\160\061"
-               "\045\144\073\045\160\062\045\144\110\000\070\001\011\000\033"
-               "\133\045\160\061\045\144\101\000\043\000\004\000\033\133\101"
-               "\000\054\001\011\000\033\133\045\160\061\045\144\120\000\047"
-               "\000\004\000\033\133\120\000\055\001\011\000\033\133\045\160"
-               "\061\045\144\115\000\050\000\004\000\033\133\115\000\024\000"
-               "\005\000\033\133\060\112\000\023\000\004\000\033\133\113\000"
-               "\034\000\004\000\033\133\110\000\166\001\002\000\011\000\060"
-               "\001\011\000\033\133\045\160\061\045\144\100\000\165\000\004"
-               "\000\033\133\100\000\062\001\011\000\033\133\045\160\061\045"
-               "\144\114\000\166\000\004\000\033\133\114\000\122\001\002\000"
-               "\012\000\157\000\005\000\033\133\060\155\000\173\000\002\000"
-               "\010\000\326\000\004\000\033\133\104\000\212\000\004\000\033"
-               "\133\102\000\351\000\004\000\033\133\103\000\015\001\004\000"
-               "\033\133\101\000\210\000\002\000\177\000\214\000\004\000\033"
-               "\133\131\000\221\000\006\000\033\133\062\061\176\000\222\000"
-               "\006\000\033\133\061\061\176\000\223\000\006\000\033\133\061"
-               "\062\176\000\224\000\006\000\033\133\061\063\176\000\225\000"
-               "\006\000\033\133\061\064\176\000\226\000\006\000\033\133\061"
-               "\065\176\000\227\000\006\000\033\133\061\067\176\000\230\000"
-               "\006\000\033\133\061\070\176\000\231\000\006\000\033\133\061"
-               "\071\176\000\232\000\006\000\033\133\062\060\176\000\233\000"
-               "\006\000\033\133\062\061\176\000\234\000\010\000\033\133\061"
-               "\061\073\062\176\000\235\000\010\000\033\133\061\062\073\062"
-               "\176\000\236\000\010\000\033\133\061\063\073\062\176\000\237"
-               "\000\010\000\033\133\061\064\073\062\176\000\240\000\010\000"
-               "\033\133\061\065\073\062\176\000\241\000\010\000\033\133\061"
-               "\067\073\062\176\000\242\000\010\000\033\133\061\070\073\062"
-               "\176\000\243\000\010\000\033\133\061\071\073\062\176\000\244"
-               "\000\010\000\033\133\062\060\073\062\176\000\245\000\010\000"
-               "\033\133\062\061\073\062\176\000\246\000\010\000\033\133\061"
-               "\061\073\065\176\000\247\000\010\000\033\133\061\062\073\065"
-               "\176\000\250\000\010\000\033\133\061\063\073\065\176\000\251"
-               "\000\010\000\033\133\061\064\073\065\176\000\252\000\010\000"
-               "\033\133\061\065\073\065\176\000\253\000\010\000\033\133\061"
-               "\067\073\065\176\000\254\000\010\000\033\133\061\070\073\065"
-               "\176\000\255\000\010\000\033\133\061\071\073\065\176\000\256"
-               "\000\010\000\033\133\062\060\073\065\176\000\257\000\010\000"
-               "\033\133\062\061\073\065\176\000\260\000\010\000\033\133\061"
-               "\061\073\066\176\000\261\000\010\000\033\133\061\062\073\066"
-               "\176\000\262\000\010\000\033\133\061\063\073\066\176\000\263"
-               "\000\010\000\033\133\061\064\073\066\176\000\264\000\010\000"
-               "\033\133\061\065\073\066\176\000\265\000\010\000\033\133\061"
-               "\067\073\066\176\000\266\000\010\000\033\133\061\070\073\066"
-               "\176\000\267\000\010\000\033\133\061\071\073\066\176\000\270"
-               "\000\010\000\033\133\062\060\073\066\176\000\271\000\010\000"
-               "\033\133\062\061\073\066\176\000\323\000\004\000\033\133\110"
-               "\000\324\000\004\000\033\133\100\000\335\000\004\000\033\133"
-               "\125\000\340\000\004\000\033\133\126\000\047\001\003\000\015"
-               "\012\000\105\000\005\000\033\133\067\155\000\123\001\003\000"
-               "\033\115\000\140\000\005\000\033\133\060\155\000\143\000\005"
-               "\000\033\133\060\155\000\125\000\005\000\033\133\060\155\000"
-               "\112\000\005\000\033\133\067\155\000\116\000\005\000\033\133"
-               "\064\155\000\132\001\012\000\033\133\064\045\160\061\045\144"
-               "\155\000\133\001\012\000\033\133\063\045\160\061\045\144\155"
-               "\000\000\000\077\000\053\020\054\021\055\030\056\031\060\333"
-               "\140\004\141\261\146\370\147\361\150\260\152\331\153\277\154"
-               "\332\155\300\156\305\157\176\160\304\161\304\162\304\163\137"
-               "\164\303\165\264\166\301\167\302\170\263\171\363\172\362\173"
-               "\343\174\330\175\234\176\376\000\000\000",
-               1045
-       },
-       {
-               "vt100",
-               "\002\006\000\166\164\061\060\060\000\000\000\000\000\021\000"
-               "\005\000\001\000\001\036\000\001\027\000\001\011\000\001\044"
-               "\000\001\022\000\004\000\004\000\120\000\007\000\010\000\012"
-               "\000\030\000\036\000\003\000\100\003\107\000\000\000\063\000"
-               "\140\140\141\141\146\146\147\147\152\152\153\153\154\154\155"
-               "\155\156\156\157\157\160\160\161\161\162\162\163\163\164\164"
-               "\165\165\166\166\167\167\170\170\171\171\172\172\173\173\174"
-               "\174\175\175\176\176\000\003\000\002\000\007\000\063\000\011"
-               "\000\033\133\065\155\044\074\062\076\000\064\000\011\000\033"
-               "\133\061\155\044\074\062\076\000\021\000\014\000\033\133\110"
-               "\033\133\112\044\074\065\060\076\000\007\000\002\000\015\000"
-               "\014\000\021\000\033\133\045\151\045\160\061\045\144\073\045"
-               "\160\062\045\144\162\000\063\001\011\000\033\133\045\160\061"
-               "\045\144\104\000\036\000\002\000\010\000\056\001\011\000\033"
-               "\133\045\160\061\045\144\102\000\033\000\002\000\012\000\065"
-               "\001\011\000\033\133\045\160\061\045\144\103\000\041\000\010"
-               "\000\033\133\103\044\074\062\076\000\032\000\025\000\033\133"
-               "\045\151\045\160\061\045\144\073\045\160\062\045\144\110\044"
-               "\074\065\076\000\070\001\011\000\033\133\045\160\061\045\144"
-               "\101\000\043\000\010\000\033\133\101\044\074\062\076\000\024"
-               "\000\011\000\033\133\112\044\074\065\060\076\000\023\000\010"
-               "\000\033\133\113\044\074\063\076\000\022\000\011\000\033\133"
-               "\061\113\044\074\063\076\000\057\000\007\000\033\050\102\033"
-               "\051\060\000\034\000\004\000\033\133\110\000\166\001\002\000"
-               "\011\000\153\001\003\000\033\110\000\122\001\002\000\012\000"
-               "\173\000\002\000\010\000\326\000\004\000\033\117\104\000\212"
-               "\000\004\000\033\117\102\000\351\000\004\000\033\117\103\000"
-               "\015\001\004\000\033\117\101\000\021\001\004\000\160\146\061"
-               "\000\022\001\004\000\160\146\062\000\023\001\004\000\160\146"
-               "\063\000\024\001\004\000\160\146\064\000\100\001\005\000\033"
-               "\133\060\151\000\102\001\005\000\033\133\064\151\000\103\001"
-               "\005\000\033\133\065\151\000\116\001\003\000\033\070\000\105"
-               "\000\011\000\033\133\067\155\044\074\062\076\000\123\001\007"
-               "\000\033\115\044\074\065\076\000\123\000\002\000\017\000\124"
-               "\000\006\000\033\133\077\067\154\000\016\001\010\000\033\133"
-               "\077\061\154\033\076\000\140\000\010\000\033\133\155\044\074"
-               "\062\076\000\143\000\010\000\033\133\155\044\074\062\076\000"
-               "\113\001\034\000\033\076\033\133\077\063\154\033\133\077\064"
-               "\154\033\133\077\065\154\033\133\077\067\150\033\133\077\070"
-               "\150\000\120\001\003\000\033\067\000\134\001\114\000\033\133"
-               "\060\045\077\045\160\061\045\160\066\045\174\045\164\073\061"
-               "\045\073\045\077\045\160\062\045\164\073\064\045\073\045\077"
-               "\045\160\061\045\160\063\045\174\045\164\073\067\045\073\045"
-               "\077\045\160\064\045\164\073\065\045\073\155\045\077\045\160"
-               "\071\045\164\016\045\145\017\045\073\044\074\062\076\000\125"
-               "\000\011\000\033\133\155\017\044\074\062\076\000\061\000\002"
-               "\000\016\000\062\000\006\000\033\133\077\067\150\000\017\001"
-               "\010\000\033\133\077\061\150\033\075\000\112\000\011\000\033"
-               "\133\067\155\044\074\062\076\000\116\000\011\000\033\133\064"
-               "\155\044\074\062\076\000\017\000\005\000\033\133\063\147\000"
-               "\221\000\004\000\033\117\171\000\233\000\004\000\033\117\170"
-               "\000\226\000\004\000\033\117\164\000\227\000\004\000\033\117"
-               "\165\000\230\000\004\000\033\117\166\000\231\000\004\000\033"
-               "\117\154\000\232\000\004\000\033\117\167\000\215\000\004\000"
-               "\033\117\115\000\222\000\004\000\033\117\120\000\223\000\004"
-               "\000\033\117\121\000\224\000\004\000\033\117\122\000\225\000"
-               "\004\000\033\117\123\000\170\000\004\000\033\117\161\000\171"
-               "\000\004\000\033\117\163\000\172\000\004\000\033\117\162\000"
-               "\176\000\004\000\033\117\160\000\177\000\004\000\033\117\156"
-               "\000\011\000\001\000\003\000\142\163\000\146\001",
-               897
-       },
-       {
-               "vt220",
-               "\002\006\000\166\164\062\062\060\000\000\000\000\000\024\000"
-               "\006\000\001\000\001\036\000\001\026\000\001\027\000\001\011"
-               "\000\001\044\000\001\022\000\004\000\004\000\120\000\007\000"
-               "\010\000\012\000\030\000\036\000\003\000\367\003\132\000\000"
-               "\000\063\000\140\140\141\141\146\146\147\147\152\152\153\153"
-               "\154\154\155\155\156\156\157\157\160\160\161\161\162\162\163"
-               "\163\164\164\165\165\166\166\167\167\170\170\171\171\172\172"
-               "\173\173\174\174\175\175\176\176\000\003\000\002\000\007\000"
-               "\063\000\005\000\033\133\065\155\000\064\000\005\000\033\133"
-               "\061\155\000\021\000\007\000\033\133\110\033\133\112\000\007"
-               "\000\002\000\015\000\014\000\021\000\033\133\045\151\045\160"
-               "\061\045\144\073\045\160\062\045\144\162\000\063\001\011\000"
-               "\033\133\045\160\061\045\144\104\000\036\000\002\000\010\000"
-               "\056\001\011\000\033\133\045\160\061\045\144\102\000\033\000"
-               "\002\000\012\000\065\001\011\000\033\133\045\160\061\045\144"
-               "\103\000\041\000\004\000\033\133\103\000\032\000\021\000\033"
-               "\133\045\151\045\160\061\045\144\073\045\160\062\045\144\110"
-               "\000\070\001\011\000\033\133\045\160\061\045\144\101\000\043"
-               "\000\004\000\033\133\101\000\054\001\011\000\033\133\045\160"
-               "\061\045\144\120\000\047\000\004\000\033\133\120\000\055\001"
-               "\011\000\033\133\045\160\061\045\144\115\000\050\000\004\000"
-               "\033\133\115\000\122\000\011\000\033\133\045\160\061\045\144"
-               "\130\000\024\000\004\000\033\133\112\000\023\000\004\000\033"
-               "\133\113\000\022\000\005\000\033\133\061\113\000\057\000\004"
-               "\000\033\051\060\000\150\000\022\000\033\133\077\065\150\044"
-               "\074\062\060\060\057\076\033\133\077\065\154\000\034\000\004"
-               "\000\033\133\110\000\166\001\002\000\011\000\153\001\003\000"
-               "\033\110\000\060\001\011\000\033\133\045\160\061\045\144\100"
-               "\000\161\000\030\000\057\165\163\162\057\163\150\141\162\145"
-               "\057\164\141\142\163\145\164\057\166\164\061\060\060\000\062"
-               "\001\011\000\033\133\045\160\061\045\144\114\000\166\000\004"
-               "\000\033\133\114\000\122\001\003\000\033\104\000\157\000\026"
-               "\000\033\133\077\067\150\033\133\076\033\133\077\061\150\033"
-               "\040\106\033\133\077\064\154\000\173\000\002\000\010\000\326"
-               "\000\004\000\033\133\104\000\212\000\004\000\033\133\102\000"
-               "\351\000\004\000\033\133\103\000\015\001\004\000\033\133\101"
-               "\000\222\000\004\000\033\117\120\000\233\000\006\000\033\133"
-               "\062\061\176\000\234\000\006\000\033\133\062\063\176\000\235"
-               "\000\006\000\033\133\062\064\176\000\236\000\006\000\033\133"
-               "\062\065\176\000\237\000\006\000\033\133\062\066\176\000\242"
-               "\000\006\000\033\133\063\061\176\000\243\000\006\000\033\133"
-               "\063\062\176\000\244\000\006\000\033\133\063\063\176\000\223"
-               "\000\004\000\033\117\121\000\245\000\006\000\033\133\063\064"
-               "\176\000\224\000\004\000\033\117\122\000\225\000\004\000\033"
-               "\117\123\000\227\000\006\000\033\133\061\067\176\000\230\000"
-               "\006\000\033\133\061\070\176\000\231\000\006\000\033\133\061"
-               "\071\176\000\232\000\006\000\033\133\062\060\176\000\321\000"
-               "\005\000\033\133\061\176\000\322\000\006\000\033\133\062\070"
-               "\176\000\324\000\005\000\033\133\062\176\000\335\000\005\000"
-               "\033\133\066\176\000\340\000\005\000\033\133\065\176\000\343"
-               "\000\006\000\033\133\062\071\176\000\362\000\005\000\033\133"
-               "\064\176\000\021\001\004\000\160\146\061\000\022\001\004\000"
-               "\160\146\062\000\023\001\004\000\160\146\063\000\024\001\004"
-               "\000\160\146\064\000\100\001\004\000\033\133\151\000\102\001"
-               "\005\000\033\133\064\151\000\103\001\005\000\033\133\065\151"
-               "\000\047\001\003\000\033\105\000\116\001\003\000\033\070\000"
-               "\105\000\005\000\033\133\067\155\000\123\001\003\000\033\115"
-               "\000\123\000\010\000\033\050\102\044\074\064\076\000\124\000"
-               "\006\000\033\133\077\067\154\000\131\000\005\000\033\133\064"
-               "\154\000\140\000\006\000\033\133\062\067\155\000\143\000\006"
-               "\000\033\133\062\064\155\000\112\001\006\000\033\133\077\063"
-               "\154\000\120\001\003\000\033\067\000\134\001\113\000\033\133"
-               "\060\045\077\045\160\066\045\164\073\061\045\073\045\077\045"
-               "\160\062\045\164\073\064\045\073\045\077\045\160\064\045\164"
-               "\073\065\045\073\045\077\045\160\061\045\160\063\045\174\045"
-               "\164\073\067\045\073\155\045\077\045\160\071\045\164\033\050"
-               "\060\045\145\033\050\102\045\073\044\074\062\076\000\125\000"
-               "\007\000\033\133\155\033\050\102\000\061\000\010\000\033\050"
-               "\060\044\074\062\076\000\062\000\006\000\033\133\077\067\150"
-               "\000\073\000\005\000\033\133\064\150\000\112\000\005\000\033"
-               "\133\067\155\000\116\000\005\000\033\133\064\155\000\017\000"
-               "\005\000\033\133\063\147\000\011\000\001\000\003\000\142\163"
-               "\000\146\001",
-               1083
-       },
-       {
-               "wsvt25",
-               "\002\007\000\167\163\166\164\062\065\000\000\000\000\000\027"
-               "\000\007\000\002\000\001\027\000\001\001\000\001\036\000\001"
-               "\026\000\001\011\000\001\044\000\001\036\000\007\000\016\000"
-               "\010\000\004\000\120\000\007\000\010\000\012\000\031\000\025"
-               "\000\002\000\021\000\100\000\036\000\003\000\064\004\140\000"
-               "\157\000\013\000\033\133\162\033\133\062\065\073\061\110\000"
-               "\214\000\005\000\033\133\070\176\000\222\000\006\000\033\133"
-               "\061\061\176\000\233\000\006\000\033\133\062\061\176\000\234"
-               "\000\006\000\033\133\062\063\176\000\235\000\006\000\033\133"
-               "\062\064\176\000\223\000\006\000\033\133\061\062\176\000\224"
-               "\000\006\000\033\133\061\063\176\000\225\000\006\000\033\133"
-               "\061\064\176\000\226\000\006\000\033\133\061\065\176\000\227"
-               "\000\006\000\033\133\061\067\176\000\230\000\006\000\033\133"
-               "\061\070\176\000\231\000\006\000\033\133\061\071\176\000\232"
-               "\000\006\000\033\133\062\060\176\000\323\000\005\000\033\133"
-               "\067\176\000\052\001\004\000\033\133\155\000\132\001\012\000"
-               "\033\133\064\045\160\061\045\144\155\000\133\001\012\000\033"
-               "\133\063\045\160\061\045\144\155\000\000\000\063\000\140\140"
-               "\141\141\146\146\147\147\152\152\153\153\154\154\155\155\156"
-               "\156\157\157\160\160\161\161\162\162\163\163\164\164\165\165"
-               "\166\166\167\167\170\170\171\171\172\172\173\173\174\174\175"
-               "\175\176\176\000\003\000\002\000\007\000\063\000\005\000\033"
-               "\133\065\155\000\064\000\005\000\033\133\061\155\000\021\000"
-               "\007\000\033\133\110\033\133\112\000\007\000\002\000\015\000"
-               "\014\000\021\000\033\133\045\151\045\160\061\045\144\073\045"
-               "\160\062\045\144\162\000\063\001\011\000\033\133\045\160\061"
-               "\045\144\104\000\036\000\002\000\010\000\056\001\011\000\033"
-               "\133\045\160\061\045\144\102\000\033\000\002\000\012\000\065"
-               "\001\011\000\033\133\045\160\061\045\144\103\000\041\000\004"
-               "\000\033\133\103\000\032\000\021\000\033\133\045\151\045\160"
-               "\061\045\144\073\045\160\062\045\144\110\000\070\001\011\000"
-               "\033\133\045\160\061\045\144\101\000\043\000\004\000\033\133"
-               "\101\000\054\001\011\000\033\133\045\160\061\045\144\120\000"
-               "\047\000\004\000\033\133\120\000\055\001\011\000\033\133\045"
-               "\160\061\045\144\115\000\050\000\004\000\033\133\115\000\122"
-               "\000\011\000\033\133\045\160\061\045\144\130\000\024\000\004"
-               "\000\033\133\112\000\023\000\004\000\033\133\113\000\022\000"
-               "\005\000\033\133\061\113\000\057\000\004\000\033\051\060\000"
-               "\150\000\022\000\033\133\077\065\150\044\074\062\060\060\057"
-               "\076\033\133\077\065\154\000\034\000\004\000\033\133\110\000"
-               "\166\001\002\000\011\000\153\001\003\000\033\110\000\060\001"
-               "\011\000\033\133\045\160\061\045\144\100\000\161\000\030\000"
-               "\057\165\163\162\057\163\150\141\162\145\057\164\141\142\163"
-               "\145\164\057\166\164\061\060\060\000\062\001\011\000\033\133"
-               "\045\160\061\045\144\114\000\166\000\004\000\033\133\114\000"
-               "\122\001\003\000\033\104\000\173\000\002\000\010\000\326\000"
-               "\004\000\033\133\104\000\212\000\004\000\033\133\102\000\351"
-               "\000\004\000\033\133\103\000\015\001\004\000\033\133\101\000"
-               "\236\000\006\000\033\133\062\065\176\000\237\000\006\000\033"
-               "\133\062\066\176\000\242\000\006\000\033\133\063\061\176\000"
-               "\243\000\006\000\033\133\063\062\176\000\244\000\006\000\033"
-               "\133\063\063\176\000\245\000\006\000\033\133\063\064\176\000"
-               "\321\000\005\000\033\133\061\176\000\322\000\006\000\033\133"
-               "\062\070\176\000\324\000\005\000\033\133\062\176\000\335\000"
-               "\005\000\033\133\066\176\000\340\000\005\000\033\133\065\176"
-               "\000\343\000\006\000\033\133\062\071\176\000\362\000\005\000"
-               "\033\133\064\176\000\021\001\004\000\160\146\061\000\022\001"
-               "\004\000\160\146\062\000\023\001\004\000\160\146\063\000\024"
-               "\001\004\000\160\146\064\000\100\001\004\000\033\133\151\000"
-               "\102\001\005\000\033\133\064\151\000\103\001\005\000\033\133"
-               "\065\151\000\047\001\003\000\033\105\000\116\001\003\000\033"
-               "\070\000\105\000\005\000\033\133\067\155\000\123\001\003\000"
-               "\033\115\000\123\000\010\000\033\050\102\044\074\064\076\000"
-               "\124\000\006\000\033\133\077\067\154\000\131\000\005\000\033"
-               "\133\064\154\000\140\000\006\000\033\133\062\067\155\000\143"
-               "\000\006\000\033\133\062\064\155\000\112\001\006\000\033\133"
-               "\077\063\154\000\120\001\003\000\033\067\000\134\001\113\000"
-               "\033\133\060\045\077\045\160\066\045\164\073\061\045\073\045"
-               "\077\045\160\062\045\164\073\064\045\073\045\077\045\160\064"
-               "\045\164\073\065\045\073\045\077\045\160\061\045\160\063\045"
-               "\174\045\164\073\067\045\073\155\045\077\045\160\071\045\164"
-               "\033\050\060\045\145\033\050\102\045\073\044\074\062\076\000"
-               "\125\000\007\000\033\133\155\033\050\102\000\061\000\010\000"
-               "\033\050\060\044\074\062\076\000\062\000\006\000\033\133\077"
-               "\067\150\000\073\000\005\000\033\133\064\150\000\112\000\005"
-               "\000\033\133\067\155\000\116\000\005\000\033\133\064\155\000"
-               "\017\000\005\000\033\133\063\147\000\011\000\001\000\003\000"
-               "\142\163\000\146\001",
-               1160
-       },
-       {
-               "xterm",
-               "\002\006\000\170\164\145\162\155\000\000\000\000\000\032\000"
-               "\010\000\032\000\001\001\000\001\002\000\001\016\000\001\036"
-               "\000\001\026\000\001\027\000\001\011\000\001\026\000\005\000"
-               "\016\000\010\000\004\000\120\000\007\000\010\000\012\000\030"
-               "\000\021\000\100\000\004\010\247\000\061\001\011\000\033\133"
-               "\045\160\061\045\144\123\000\360\000\007\000\033\133\063\073"
-               "\062\176\000\363\000\007\000\033\133\061\073\062\106\000\371"
-               "\000\007\000\033\133\061\073\062\110\000\372\000\007\000\033"
-               "\133\062\073\062\176\000\376\000\007\000\033\133\066\073\062"
-               "\176\000\000\001\007\000\033\133\065\073\062\176\000\172\000"
-               "\004\000\033\117\105\000\175\000\004\000\033\133\132\000\326"
-               "\000\004\000\033\117\104\000\212\000\004\000\033\117\102\000"
-               "\351\000\004\000\033\117\103\000\015\001\004\000\033\117\101"
-               "\000\214\000\004\000\033\117\106\000\215\000\004\000\033\117"
-               "\115\000\323\000\004\000\033\117\110\000\324\000\005\000\033"
-               "\133\062\176\000\332\000\004\000\033\133\115\000\335\000\005"
-               "\000\033\133\066\176\000\340\000\005\000\033\133\065\176\000"
-               "\067\001\011\000\033\133\045\160\061\045\144\124\000\222\000"
-               "\004\000\033\117\120\000\233\000\006\000\033\133\062\061\176"
-               "\000\234\000\006\000\033\133\062\063\176\000\235\000\006\000"
-               "\033\133\062\064\176\000\236\000\007\000\033\133\061\073\062"
-               "\120\000\237\000\007\000\033\133\061\073\062\121\000\240\000"
-               "\007\000\033\133\061\073\062\122\000\241\000\007\000\033\133"
-               "\061\073\062\123\000\242\000\010\000\033\133\061\065\073\062"
-               "\176\000\243\000\010\000\033\133\061\067\073\062\176\000\244"
-               "\000\010\000\033\133\061\070\073\062\176\000\223\000\004\000"
-               "\033\117\121\000\245\000\010\000\033\133\061\071\073\062\176"
-               "\000\246\000\010\000\033\133\062\060\073\062\176\000\247\000"
-               "\010\000\033\133\062\061\073\062\176\000\250\000\010\000\033"
-               "\133\062\063\073\062\176\000\251\000\010\000\033\133\062\064"
-               "\073\062\176\000\252\000\007\000\033\133\061\073\065\120\000"
-               "\253\000\007\000\033\133\061\073\065\121\000\254\000\007\000"
-               "\033\133\061\073\065\122\000\255\000\007\000\033\133\061\073"
-               "\065\123\000\256\000\010\000\033\133\061\065\073\065\176\000"
-               "\224\000\004\000\033\117\122\000\257\000\010\000\033\133\061"
-               "\067\073\065\176\000\260\000\010\000\033\133\061\070\073\065"
-               "\176\000\261\000\010\000\033\133\061\071\073\065\176\000\262"
-               "\000\010\000\033\133\062\060\073\065\176\000\263\000\010\000"
-               "\033\133\062\061\073\065\176\000\264\000\010\000\033\133\062"
-               "\063\073\065\176\000\265\000\010\000\033\133\062\064\073\065"
-               "\176\000\266\000\007\000\033\133\061\073\066\120\000\267\000"
-               "\007\000\033\133\061\073\066\121\000\270\000\007\000\033\133"
-               "\061\073\066\122\000\225\000\004\000\033\117\123\000\271\000"
-               "\007\000\033\133\061\073\066\123\000\272\000\010\000\033\133"
-               "\061\065\073\066\176\000\273\000\010\000\033\133\061\067\073"
-               "\066\176\000\274\000\010\000\033\133\061\070\073\066\176\000"
-               "\275\000\010\000\033\133\061\071\073\066\176\000\276\000\010"
-               "\000\033\133\062\060\073\066\176\000\277\000\010\000\033\133"
-               "\062\061\073\066\176\000\300\000\010\000\033\133\062\063\073"
-               "\066\176\000\301\000\010\000\033\133\062\064\073\066\176\000"
-               "\302\000\007\000\033\133\061\073\063\120\000\226\000\006\000"
-               "\033\133\061\065\176\000\303\000\007\000\033\133\061\073\063"
-               "\121\000\304\000\007\000\033\133\061\073\063\122\000\305\000"
-               "\007\000\033\133\061\073\063\123\000\306\000\010\000\033\133"
-               "\061\065\073\063\176\000\307\000\010\000\033\133\061\067\073"
-               "\063\176\000\310\000\010\000\033\133\061\070\073\063\176\000"
-               "\311\000\010\000\033\133\061\071\073\063\176\000\312\000\010"
-               "\000\033\133\062\060\073\063\176\000\313\000\010\000\033\133"
-               "\062\061\073\063\176\000\314\000\010\000\033\133\062\063\073"
-               "\063\176\000\227\000\006\000\033\133\061\067\176\000\315\000"
-               "\010\000\033\133\062\064\073\063\176\000\316\000\007\000\033"
-               "\133\061\073\064\120\000\317\000\007\000\033\133\061\073\064"
-               "\121\000\320\000\007\000\033\133\061\073\064\122\000\230\000"
-               "\006\000\033\133\061\070\176\000\231\000\006\000\033\133\061"
-               "\071\176\000\232\000\006\000\033\133\062\060\176\000\373\000"
-               "\007\000\033\133\061\073\062\104\000\005\001\007\000\033\133"
-               "\061\073\062\103\000\366\000\007\000\033\133\061\073\062\102"
-               "\000\002\001\007\000\033\133\061\073\062\101\000\210\000\005"
-               "\000\033\133\063\176\000\000\000\065\000\140\140\141\141\146"
-               "\146\147\147\151\151\152\152\153\153\154\154\155\155\156\156"
-               "\157\157\160\160\161\161\162\162\163\163\164\164\165\165\166"
-               "\166\167\167\170\170\171\171\172\172\173\173\174\174\175\175"
-               "\176\176\000\003\000\002\000\007\000\063\000\005\000\033\133"
-               "\065\155\000\064\000\005\000\033\133\061\155\000\002\000\004"
-               "\000\033\133\132\000\035\000\007\000\033\133\077\062\065\154"
-               "\000\021\000\010\000\033\133\110\033\133\062\112\000\040\000"
-               "\015\000\033\133\077\061\062\154\033\133\077\062\065\150\000"
-               "\007\000\002\000\015\000\014\000\021\000\033\133\045\151\045"
-               "\160\061\045\144\073\045\160\062\045\144\162\000\063\001\011"
-               "\000\033\133\045\160\061\045\144\104\000\036\000\002\000\010"
-               "\000\056\001\011\000\033\133\045\160\061\045\144\102\000\033"
-               "\000\002\000\012\000\065\001\011\000\033\133\045\160\061\045"
-               "\144\103\000\041\000\004\000\033\133\103\000\032\000\021\000"
-               "\033\133\045\151\045\160\061\045\144\073\045\160\062\045\144"
-               "\110\000\070\001\011\000\033\133\045\160\061\045\144\101\000"
-               "\043\000\004\000\033\133\101\000\044\000\012\000\033\133\077"
-               "\061\062\073\062\065\150\000\054\001\011\000\033\133\045\160"
-               "\061\045\144\120\000\047\000\004\000\033\133\120\000\055\001"
-               "\011\000\033\133\045\160\061\045\144\115\000\050\000\004\000"
-               "\033\133\115\000\122\000\011\000\033\133\045\160\061\045\144"
-               "\130\000\024\000\004\000\033\133\112\000\023\000\004\000\033"
-               "\133\113\000\022\000\005\000\033\133\061\113\000\150\000\022"
-               "\000\033\133\077\065\150\044\074\061\060\060\057\076\033\133"
-               "\077\065\154\000\034\000\004\000\033\133\110\000\027\000\013"
-               "\000\033\133\045\151\045\160\061\045\144\107\000\166\001\002"
-               "\000\011\000\153\001\003\000\033\110\000\060\001\011\000\033"
-               "\133\045\160\061\045\144\100\000\062\001\011\000\033\133\045"
-               "\160\061\045\144\114\000\166\000\004\000\033\133\114\000\122"
-               "\001\002\000\012\000\110\000\005\000\033\133\070\155\000\157"
-               "\000\022\000\033\133\041\160\033\133\077\063\073\064\154\033"
-               "\133\064\154\033\076\000\173\000\002\000\010\000\100\001\004"
-               "\000\033\133\151\000\102\001\005\000\033\133\064\151\000\103"
-               "\001\005\000\033\133\065\151\000\052\001\011\000\033\133\063"
-               "\071\073\064\071\155\000\116\001\003\000\033\070\000\105\000"
-               "\005\000\033\133\067\155\000\123\001\003\000\033\115\000\123"
-               "\000\004\000\033\050\102\000\124\000\006\000\033\133\077\067"
-               "\154\000\126\000\011\000\033\133\077\061\060\064\071\154\000"
-               "\131\000\005\000\033\133\064\154\000\016\001\010\000\033\133"
-               "\077\061\154\033\076\000\036\001\011\000\033\133\077\061\060"
-               "\063\064\154\000\140\000\006\000\033\133\062\067\155\000\143"
-               "\000\006\000\033\133\062\064\155\000\112\001\003\000\033\143"
-               "\000\113\001\022\000\033\133\041\160\033\133\077\063\073\064"
-               "\154\033\133\064\154\033\076\000\120\001\003\000\033\067\000"
-               "\132\001\012\000\033\133\064\045\160\061\045\144\155\000\133"
-               "\001\012\000\033\133\063\045\160\061\045\144\155\000\135\001"
-               "\106\000\033\133\064\045\077\045\160\061\045\173\061\175\045"
-               "\075\045\164\064\045\145\045\160\061\045\173\063\175\045\075"
-               "\045\164\066\045\145\045\160\061\045\173\064\175\045\075\045"
-               "\164\061\045\145\045\160\061\045\173\066\175\045\075\045\164"
-               "\063\045\145\045\160\061\045\144\045\073\155\000\143\001\106"
-               "\000\033\133\063\045\077\045\160\061\045\173\061\175\045\075"
-               "\045\164\064\045\145\045\160\061\045\173\063\175\045\075\045"
-               "\164\066\045\145\045\160\061\045\173\064\175\045\075\045\164"
-               "\061\045\145\045\160\061\045\173\066\175\045\075\045\164\063"
-               "\045\145\045\160\061\045\144\045\073\155\000\134\001\122\000"
-               "\045\077\045\160\071\045\164\033\050\060\045\145\033\050\102"
-               "\045\073\033\133\060\045\077\045\160\066\045\164\073\061\045"
-               "\073\045\077\045\160\062\045\164\073\064\045\073\045\077\045"
-               "\160\061\045\160\063\045\174\045\164\073\067\045\073\045\077"
-               "\045\160\064\045\164\073\065\045\073\045\077\045\160\067\045"
-               "\164\073\070\045\073\155\000\125\000\007\000\033\050\102\033"
-               "\133\155\000\061\000\004\000\033\050\060\000\062\000\006\000"
-               "\033\133\077\067\150\000\065\000\011\000\033\133\077\061\060"
-               "\064\071\150\000\073\000\005\000\033\133\064\150\000\017\001"
-               "\010\000\033\133\077\061\150\033\075\000\037\001\011\000\033"
-               "\133\077\061\060\063\064\150\000\112\000\005\000\033\133\067"
-               "\155\000\116\000\005\000\033\133\064\155\000\017\000\005\000"
-               "\033\133\063\147\000\117\001\013\000\033\133\045\151\045\160"
-               "\061\045\144\144\000\202\001\010\000\033\133\077\061\073\062"
-               "\143\000\200\001\013\000\033\133\045\151\045\144\073\045\144"
-               "\122\000\201\001\005\000\033\133\066\156\000\203\001\004\000"
-               "\033\133\143\000\272\003\070\000\004\000\153\104\116\000\163"
-               "\007\000\033\133\061\073\062\102\000\005\000\153\104\116\063"
-               "\000\163\007\000\033\133\061\073\063\102\000\005\000\153\104"
-               "\116\064\000\163\007\000\033\133\061\073\064\102\000\005\000"
-               "\153\104\116\065\000\163\007\000\033\133\061\073\065\102\000"
-               "\005\000\153\104\116\066\000\163\007\000\033\133\061\073\066"
-               "\102\000\005\000\153\104\116\067\000\163\007\000\033\133\061"
-               "\073\067\102\000\006\000\153\114\106\124\063\000\163\007\000"
-               "\033\133\061\073\063\104\000\006\000\153\114\106\124\064\000"
-               "\163\007\000\033\133\061\073\064\104\000\006\000\153\114\106"
-               "\124\065\000\163\007\000\033\133\061\073\065\104\000\006\000"
-               "\153\114\106\124\066\000\163\007\000\033\133\061\073\066\104"
-               "\000\006\000\153\114\106\124\067\000\163\007\000\033\133\061"
-               "\073\067\104\000\006\000\153\122\111\124\063\000\163\007\000"
-               "\033\133\061\073\063\103\000\006\000\153\122\111\124\064\000"
-               "\163\007\000\033\133\061\073\064\103\000\006\000\153\122\111"
-               "\124\065\000\163\007\000\033\133\061\073\065\103\000\006\000"
-               "\153\122\111\124\066\000\163\007\000\033\133\061\073\066\103"
-               "\000\006\000\153\122\111\124\067\000\163\007\000\033\133\061"
-               "\073\067\103\000\004\000\153\125\120\000\163\007\000\033\133"
-               "\061\073\062\101\000\005\000\153\125\120\063\000\163\007\000"
-               "\033\133\061\073\063\101\000\005\000\153\125\120\064\000\163"
-               "\007\000\033\133\061\073\064\101\000\005\000\153\125\120\065"
-               "\000\163\007\000\033\133\061\073\065\101\000\005\000\153\125"
-               "\120\066\000\163\007\000\033\133\061\073\066\101\000\005\000"
-               "\153\125\120\067\000\163\007\000\033\133\061\073\067\101\000"
-               "\005\000\153\104\103\063\000\163\007\000\033\133\063\073\063"
-               "\176\000\005\000\153\104\103\064\000\163\007\000\033\133\063"
-               "\073\064\176\000\005\000\153\104\103\065\000\163\007\000\033"
-               "\133\063\073\065\176\000\005\000\153\104\103\066\000\163\007"
-               "\000\033\133\063\073\066\176\000\005\000\153\104\103\067\000"
-               "\163\007\000\033\133\063\073\067\176\000\006\000\153\105\116"
-               "\104\063\000\163\007\000\033\133\061\073\063\106\000\006\000"
-               "\153\105\116\104\064\000\163\007\000\033\133\061\073\064\106"
-               "\000\006\000\153\105\116\104\065\000\163\007\000\033\133\061"
-               "\073\065\106\000\006\000\153\105\116\104\066\000\163\007\000"
-               "\033\133\061\073\066\106\000\006\000\153\105\116\104\067\000"
-               "\163\007\000\033\133\061\073\067\106\000\006\000\153\110\117"
-               "\115\063\000\163\007\000\033\133\061\073\063\110\000\006\000"
-               "\153\110\117\115\064\000\163\007\000\033\133\061\073\064\110"
-               "\000\006\000\153\110\117\115\065\000\163\007\000\033\133\061"
-               "\073\065\110\000\006\000\153\110\117\115\066\000\163\007\000"
-               "\033\133\061\073\066\110\000\006\000\153\110\117\115\067\000"
-               "\163\007\000\033\133\061\073\067\110\000\005\000\153\111\103"
-               "\063\000\163\007\000\033\133\062\073\063\176\000\005\000\153"
-               "\111\103\064\000\163\007\000\033\133\062\073\064\176\000\005"
-               "\000\153\111\103\065\000\163\007\000\033\133\062\073\065\176"
-               "\000\005\000\153\111\103\066\000\163\007\000\033\133\062\073"
-               "\066\176\000\005\000\153\111\103\067\000\163\007\000\033\133"
-               "\062\073\067\176\000\006\000\153\116\130\124\063\000\163\007"
-               "\000\033\133\066\073\063\176\000\006\000\153\116\130\124\064"
-               "\000\163\007\000\033\133\066\073\064\176\000\006\000\153\116"
-               "\130\124\065\000\163\007\000\033\133\066\073\065\176\000\006"
-               "\000\153\116\130\124\066\000\163\007\000\033\133\066\073\066"
-               "\176\000\006\000\153\116\130\124\067\000\163\007\000\033\133"
-               "\066\073\067\176\000\006\000\153\120\122\126\063\000\163\007"
-               "\000\033\133\065\073\063\176\000\006\000\153\120\122\126\064"
-               "\000\163\007\000\033\133\065\073\064\176\000\006\000\153\120"
-               "\122\126\065\000\163\007\000\033\133\065\073\065\176\000\006"
-               "\000\153\120\122\126\066\000\163\007\000\033\133\065\073\066"
-               "\176\000\006\000\153\120\122\126\067\000\163\007\000\033\133"
-               "\065\073\067\176\000\003\000\142\163\000\146\001\003\000\101"
-               "\130\000\146\001\005\000\155\145\155\154\000\163\003\000\033"
-               "\154\000\005\000\155\145\155\165\000\163\003\000\033\155\000",
-               3075
-       }
-};
index 53efb6c82083badecaa163bff31d0d3e2ffb8241..e047226a9e722d05c044858f0d9c45bdcf4678f3 100644 (file)
@@ -1,7 +1,7 @@
-/* $NetBSD: curterm.c,v 1.4 2010/02/22 23:05:39 roy Exp $ */
+/* $NetBSD: curterm.c,v 1.8 2011/10/05 10:46:08 roy Exp $ */
 
 /*
- * Copyright (c) 2009 The NetBSD Foundation, Inc.
+ * Copyright (c) 2009, 2011 The NetBSD Foundation, Inc.
  *
  * This code is derived from software contributed to The NetBSD Foundation
  * by Roy Marples.
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: curterm.c,v 1.4 2010/02/22 23:05:39 roy Exp $");
+__RCSID("$NetBSD: curterm.c,v 1.8 2011/10/05 10:46:08 roy Exp $");
 
 #include <assert.h>
 #include <stdlib.h>
+#include <string.h>
 #include <term_private.h>
 #include <term.h>
 #include <termios.h>
 #include <stdio.h>
+
 TERMINAL *cur_term;
 
+/*
+ * There is no standard way of getting a list of aliases for the
+ * terminal. However, some applications such as telnet want to know this.
+ * ncurses dumps the terminfo header into an undefined variable ttytype
+ * and these applications then parse it to work out the aliases.
+ * We should do the same for now, until a standard mechanism for getting
+ * the information is available or the need for it goes away.
+ */
+#define NAMESIZE       256
+char ttytype[NAMESIZE];
+
 static const speed_t bauds[] = {
        0, 50, 75, 110, 134, 150, 200, 300, 600, 1200, 2400, 4800, 9600,
        19200, 38400, 57600, 115200, 230400, 460800, 921600
@@ -67,6 +80,8 @@ TERMINAL *
 set_curterm(TERMINAL *nterm)
 {
        TERMINAL *oterm;
+       size_t l, n;
+       char *p;
 
        oterm = cur_term;
        cur_term = nterm;
@@ -81,6 +96,33 @@ set_curterm(TERMINAL *nterm)
                        PC = *pad_char;
                _ti_setospeed(nterm);
                ospeed = nterm->_ospeed;
+
+               p = ttytype;
+               l = sizeof(ttytype);
+               if ((n = strlcpy(p, nterm->name, l)) == strlen(p)) {
+                       p += n;
+                       l -= n;
+                       *p++ = '|';
+                       l--;
+                       if (nterm->_alias  &&
+                               (n = strlcpy(p, nterm->_alias, l)) == strlen(p))
+                       {
+                               p += n;
+                               l -= n;
+                               *p++ = '|';
+                               l--;
+                       }
+                       if (nterm->desc  &&
+                               (n = strlcpy(p, nterm->desc, l)) == strlen(p))
+                       {
+                               p += n;
+                               l -= n;
+                               *p++ = '|';
+                               l--;
+                       }
+                       p--;
+               }
+               *p = '\0';
        }
 
        return oterm;
@@ -90,6 +132,33 @@ int
 del_curterm(TERMINAL *oterm)
 {
 
-       _ti_freeterm(oterm);
-       return 0;
+       if (oterm == NULL)
+               return ERR;
+       free(oterm->_area);
+       free(oterm->strs);
+       free(oterm->nums);
+       free(oterm->flags);
+       free(oterm->_userdefs);
+       free(oterm);
+       return OK;
+}
+
+char *
+termname(void)
+{
+
+        _DIAGASSERT(cur_term != NULL);
+       return __UNCONST(cur_term->name);
+}
+
+static const char * nullname = '\0';
+
+char *
+longname(void)
+{
+
+       _DIAGASSERT(cur_term != NULL);
+       if (cur_term->desc == NULL)
+               return __UNCONST(nullname);
+       return __UNCONST(cur_term->desc);
 }
index 41fa05a8c57815aea2e89c36f4dc99227a498890..75730a978a1cb7800640fcca534847888d213455 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
-# $NetBSD: genhash,v 1.7 2010/10/12 12:57:51 christos Exp $
+# $NetBSD: genhash,v 1.8 2011/11/02 12:09:25 roy Exp $
 
-# Copyright (c) 2009 The NetBSD Foundation, Inc.
+# Copyright (c) 2009, 2011 The NetBSD Foundation, Inc.
 #
 # This code is derived from software contributed to The NetBSD Foundation
 # by Roy Marples.
@@ -57,7 +57,7 @@ genent()
        echo
        $TOOL_SED -e "1,/enum TI${NAME}/d" -e '/};/,$d' \
            -e 's/.*TICODE_\([^,]*\).*/\1/' $TERMH | \
-           $TOOL_NBPERF -sn _ti_${name}hash;
+           $TOOL_NBPERF -p -s -n _ti_${name}hash;
 
        cat <<EOF
 
@@ -85,7 +85,6 @@ EOF
 }
 
 cat <<EOF
-/* \$NetBSD\$ */
 /* DO NOT EDIT
  * Automatically generated from term.h */
 
@@ -93,9 +92,6 @@ cat <<EOF
 #include "nbtool_config.h"
 #endif
 
-#include <sys/cdefs.h>
-__RCSID("\$NetBSD: genhash,v 1.7 2010/10/12 12:57:51 christos Exp $");
-
 #include <stdint.h>
 #include <stdlib.h>
 #include <string.h>
index 0404441d87093cca3d0cf798e3e9c6ce6fed6ce8..3d2afca82fdeb67ab33351a0304708708aa75407 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
-# $NetBSD: genterms,v 1.3 2010/10/12 12:57:51 christos Exp $
+# $NetBSD: genterms,v 1.4 2011/11/02 12:09:25 roy Exp $
 
-# Copyright (c) 2010 The NetBSD Foundation, Inc.
+# Copyright (c) 2010, 2011 The NetBSD Foundation, Inc.
 #
 # This code is derived from software contributed to The NetBSD Foundation
 # by Roy Marples.
@@ -34,10 +34,7 @@ set -e
 : ${NETBSDSRCDIR:=/usr/src}
 : ${TERMINFO:=${NETBSDSRCDIR}/share/terminfo/terminfo}
 
-echo "/* \$NetBSD\$ */"
-echo "/* * * MODIFIED FOR MINIX * * */"
 echo "/* DO NOT EDIT"
-echo " * Regenerate by doing \`\`make compiled_terms''"
-echo " */"
+echo " * Automatically generated from terminfo */"
 echo
 ${TOOL_TIC} -Sx ${TERMINFO} ansi dumb minix vt100 vt220 wsvt25 xterm
index 8238ca6cccd5bf966dde64b9e9398c0b6d405e7f..27d70e9a1509315a09507b0bc561b183c5ef5a9c 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
-# $NetBSD: genthash,v 1.4 2010/03/03 12:09:49 roy Exp $
+# $NetBSD: genthash,v 1.5 2011/11/02 12:09:25 roy Exp $
 
-# Copyright (c) 2009 The NetBSD Foundation, Inc.
+# Copyright (c) 2009, 2011 The NetBSD Foundation, Inc.
 #
 # This code is derived from software contributed to The NetBSD Foundation
 # by Roy Marples.
@@ -36,13 +36,9 @@ set -e
 TERMCAPC=${1:-termcap_map.c}
 
 cat <<EOF
-/* \$NetBSD\$ */
 /* DO NOT EDIT
  * Automatically generated from termcap.c */
 
-#include <sys/cdefs.h>
-__RCSID("\$NetBSD: genthash,v 1.4 2010/03/03 12:09:49 roy Exp $");
-
 #include <stdint.h>
 #include <stdlib.h>
 #include <term_private.h>
@@ -51,12 +47,12 @@ EOF
 
 $TOOL_SED -n -e "1,/_ti_cap_flagids/d" -e '/};/,$d' \
        -e 's/.*"\([^"]*\)".*/\1/p' $TERMCAPC | \
-       $TOOL_NBPERF -s -n _t_flaghash
+       $TOOL_NBPERF -p -s -n _t_flaghash
 echo
 $TOOL_SED -n -e "1,/_ti_cap_numids/d" -e '/};/,$d' \
        -e 's/.*"\([^"]*\)".*/\1/p' $TERMCAPC | \
-       $TOOL_NBPERF -s -n _t_numhash
+       $TOOL_NBPERF -p -s -n _t_numhash
 echo
 $TOOL_SED -n -e "1,/_ti_cap_strids/d" -e '/};/,$d' \
        -e 's/.*"\([^"]*\)".*/\1/p' $TERMCAPC | \
-       $TOOL_NBPERF -s -n _t_strhash
+       $TOOL_NBPERF -p -s -n _t_strhash
diff --git a/lib/libterminfo/hash.c b/lib/libterminfo/hash.c
deleted file mode 100644 (file)
index 37efeee..0000000
+++ /dev/null
@@ -1,705 +0,0 @@
-/* $NetBSD: hash.c,v 1.4 2010/02/12 10:18:56 roy Exp $ */
-/* DO NOT EDIT
- * Automatically generated from term.h */
-
-#if HAVE_NBTOOL_CONFIG_H
-#include "nbtool_config.h"
-#endif
-
-#include <sys/cdefs.h>
-__RCSID("$NetBSD: hash.c,v 1.4 2010/02/12 10:18:56 roy Exp $");
-
-#include <stdint.h>
-#include <stdlib.h>
-#include <string.h>
-#include <term_private.h>
-#include <term.h>
-
-static const char _ti_flagids[][6] = {
-       "bw",
-       "am",
-       "bce",
-       "ccc",
-       "xhp",
-       "xhpa",
-       "cpix",
-       "crxm",
-       "xt",
-       "xenl",
-       "eo",
-       "gn",
-       "hc",
-       "chts",
-       "km",
-       "daisy",
-       "hs",
-       "hls",
-       "in",
-       "lpix",
-       "da",
-       "db",
-       "mir",
-       "msgr",
-       "nxon",
-       "xsb",
-       "npc",
-       "ndscr",
-       "nrrmc",
-       "os",
-       "mc5i",
-       "xvpa",
-       "sam",
-       "eslok",
-       "hz",
-       "ul",
-       "xon",
-};
-
-#include <stdlib.h>
-
-static uint32_t
-_ti_flaghash(const void * __restrict key, size_t keylen)
-{
-       static const uint8_t g[75] = {
-           0x19, 0x08, 0x16, 0x00, 0x00, 0x1e, 0x07, 0x00, 0x1d, 0x00,
-           0x17, 0x00, 0x0a, 0x17, 0x08, 0x09, 0x11, 0x00, 0x00, 0x0a,
-           0x00, 0x13, 0x1a, 0x0f, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00,
-           0x12, 0x0a, 0x00, 0x11, 0x10, 0x09, 0x00, 0x00, 0x00, 0x1b,
-           0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x00,
-           0x00, 0x0d, 0x00, 0x00, 0x04, 0x16, 0x09, 0x00, 0x1a, 0x00,
-           0x00, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
-           0x00, 0x1c, 0x05, 0x00, 0x00,
-       };
-       uint32_t h[3];
-
-       mi_vector_hash(key, keylen, 0xd36b2625U, h);
-       return (g[h[0] % 75] + g[h[1] % 75]) % 37;
-}
-
-const char *
-_ti_flagid(ssize_t idx)
-{
-
-       if ((size_t)idx > __arraycount(_ti_flagids))
-               return NULL;
-       return _ti_flagids[idx];
-}
-
-ssize_t
-_ti_flagindex(const char *key)
-{
-       uint32_t idx;
-
-       idx = _ti_flaghash((const unsigned char *)key, strlen(key));
-       if (idx > __arraycount(_ti_flagids) ||
-           strcmp(key, _ti_flagids[idx]) != 0)
-               return -1;
-       return idx;
-}
-
-static const char _ti_numids[][7] = {
-       "bitwin",
-       "bitype",
-       "bufsz",
-       "btns",
-       "cols",
-       "spinh",
-       "spinv",
-       "it",
-       "lh",
-       "lw",
-       "lines",
-       "lm",
-       "ma",
-       "xmc",
-       "colors",
-       "maddr",
-       "mjump",
-       "pairs",
-       "wnum",
-       "mcs",
-       "mls",
-       "ncv",
-       "nlab",
-       "npins",
-       "orc",
-       "orl",
-       "orhi",
-       "orvi",
-       "pb",
-       "cps",
-       "vt",
-       "widcs",
-       "wsl",
-};
-
-#include <stdlib.h>
-
-static uint32_t
-_ti_numhash(const void * __restrict key, size_t keylen)
-{
-       static const uint8_t g[67] = {
-           0x04, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00,
-           0x19, 0x00, 0x0d, 0x00, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00,
-           0x0b, 0x15, 0x1d, 0x14, 0x00, 0x01, 0x13, 0x1b, 0x14, 0x00,
-           0x19, 0x00, 0x00, 0x02, 0x14, 0x1a, 0x12, 0x00, 0x00, 0x00,
-           0x16, 0x05, 0x00, 0x12, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00,
-           0x19, 0x00, 0x20, 0x00, 0x00, 0x10, 0x17, 0x00, 0x00, 0x0f,
-           0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
-       };
-       uint32_t h[3];
-
-       mi_vector_hash(key, keylen, 0x50a11f58U, h);
-       return (g[h[0] % 67] + g[h[1] % 67]) % 33;
-}
-
-const char *
-_ti_numid(ssize_t idx)
-{
-
-       if ((size_t)idx > __arraycount(_ti_numids))
-               return NULL;
-       return _ti_numids[idx];
-}
-
-ssize_t
-_ti_numindex(const char *key)
-{
-       uint32_t idx;
-
-       idx = _ti_numhash((const unsigned char *)key, strlen(key));
-       if (idx > __arraycount(_ti_numids) ||
-           strcmp(key, _ti_numids[idx]) != 0)
-               return -1;
-       return idx;
-}
-
-static const char _ti_strids[][9] = {
-       "acsc",
-       "scesa",
-       "cbt",
-       "bel",
-       "bicr",
-       "binel",
-       "birep",
-       "cr",
-       "cpi",
-       "lpi",
-       "chr",
-       "cvr",
-       "csr",
-       "rmp",
-       "csnm",
-       "tbc",
-       "mgc",
-       "clear",
-       "el1",
-       "el",
-       "ed",
-       "csin",
-       "colornm",
-       "hpa",
-       "cmdch",
-       "cwin",
-       "cup",
-       "cud1",
-       "home",
-       "civis",
-       "cub1",
-       "mrcup",
-       "cnorm",
-       "cuf1",
-       "ll",
-       "cuu1",
-       "cvvis",
-       "defbi",
-       "defc",
-       "dch1",
-       "dl1",
-       "devt",
-       "dial",
-       "dsl",
-       "dclk",
-       "dispc",
-       "hd",
-       "enacs",
-       "endbi",
-       "smacs",
-       "smam",
-       "blink",
-       "bold",
-       "smcup",
-       "smdc",
-       "dim",
-       "swidm",
-       "sdrfq",
-       "ehhlm",
-       "smir",
-       "sitm",
-       "elhlm",
-       "slm",
-       "elohlm",
-       "smicm",
-       "snlq",
-       "snrmq",
-       "smpch",
-       "prot",
-       "rev",
-       "erhlm",
-       "smsc",
-       "invis",
-       "sshm",
-       "smso",
-       "ssubm",
-       "ssupm",
-       "ethlm",
-       "smul",
-       "sum",
-       "evhlm",
-       "smxon",
-       "ech",
-       "rmacs",
-       "rmam",
-       "sgr0",
-       "rmcup",
-       "rmdc",
-       "rwidm",
-       "rmir",
-       "ritm",
-       "rlm",
-       "rmicm",
-       "rmpch",
-       "rmsc",
-       "rshm",
-       "rmso",
-       "rsubm",
-       "rsupm",
-       "rmul",
-       "rum",
-       "rmxon",
-       "pause",
-       "hook",
-       "flash",
-       "ff",
-       "fsl",
-       "getm",
-       "wingo",
-       "hup",
-       "is1",
-       "is2",
-       "is3",
-       "if",
-       "iprog",
-       "initc",
-       "initp",
-       "ich1",
-       "il1",
-       "ip",
-       "ka1",
-       "ka3",
-       "kb2",
-       "kbs",
-       "kbeg",
-       "kcbt",
-       "kc1",
-       "kc3",
-       "kcan",
-       "ktbc",
-       "kclr",
-       "kclo",
-       "kcmd",
-       "kcpy",
-       "kcrt",
-       "kctab",
-       "kdch1",
-       "kdl1",
-       "kcud1",
-       "krmir",
-       "kend",
-       "kent",
-       "kel",
-       "ked",
-       "kext",
-       "kf0",
-       "kf1",
-       "kf2",
-       "kf3",
-       "kf4",
-       "kf5",
-       "kf6",
-       "kf7",
-       "kf8",
-       "kf9",
-       "kf10",
-       "kf11",
-       "kf12",
-       "kf13",
-       "kf14",
-       "kf15",
-       "kf16",
-       "kf17",
-       "kf18",
-       "kf19",
-       "kf20",
-       "kf21",
-       "kf22",
-       "kf23",
-       "kf24",
-       "kf25",
-       "kf26",
-       "kf27",
-       "kf28",
-       "kf29",
-       "kf30",
-       "kf31",
-       "kf32",
-       "kf33",
-       "kf34",
-       "kf35",
-       "kf36",
-       "kf37",
-       "kf38",
-       "kf39",
-       "kf40",
-       "kf41",
-       "kf42",
-       "kf43",
-       "kf44",
-       "kf45",
-       "kf46",
-       "kf47",
-       "kf48",
-       "kf49",
-       "kf50",
-       "kf51",
-       "kf52",
-       "kf53",
-       "kf54",
-       "kf55",
-       "kf56",
-       "kf57",
-       "kf58",
-       "kf59",
-       "kf60",
-       "kf61",
-       "kf62",
-       "kf63",
-       "kfnd",
-       "khlp",
-       "khome",
-       "kich1",
-       "kil1",
-       "kcub1",
-       "kll",
-       "kmrk",
-       "kmsg",
-       "kmous",
-       "kmov",
-       "knxt",
-       "knp",
-       "kopn",
-       "kopt",
-       "kpp",
-       "kprv",
-       "kprt",
-       "krdo",
-       "kref",
-       "krfr",
-       "krpl",
-       "krst",
-       "kres",
-       "kcuf1",
-       "ksav",
-       "kBEG",
-       "kCAN",
-       "kCMD",
-       "kCPY",
-       "kCRT",
-       "kDC",
-       "kDL",
-       "kslt",
-       "kEND",
-       "kEOL",
-       "kEXT",
-       "kind",
-       "kFND",
-       "kHLP",
-       "kHOM",
-       "kIC",
-       "kLFT",
-       "kMSG",
-       "kMOV",
-       "kNXT",
-       "kOPT",
-       "kPRV",
-       "kPRT",
-       "kri",
-       "kRDO",
-       "kRPL",
-       "kRIT",
-       "kRES",
-       "kSAV",
-       "kSPD",
-       "khts",
-       "kUND",
-       "kspd",
-       "kund",
-       "kcuu1",
-       "rmkx",
-       "smkx",
-       "lf0",
-       "lf1",
-       "lf2",
-       "lf3",
-       "lf4",
-       "lf5",
-       "lf6",
-       "lf7",
-       "lf8",
-       "lf9",
-       "lf10",
-       "fln",
-       "rmln",
-       "smln",
-       "rmm",
-       "smm",
-       "mhpa",
-       "mcud1",
-       "mcub1",
-       "mcuf1",
-       "mvpa",
-       "mcuu1",
-       "minfo",
-       "nel",
-       "porder",
-       "oc",
-       "op",
-       "pad",
-       "dch",
-       "dl",
-       "cud",
-       "mcud",
-       "ich",
-       "indn",
-       "il",
-       "cub",
-       "mcub",
-       "cuf",
-       "mcuf",
-       "rin",
-       "cuu",
-       "mcuu",
-       "pctrm",
-       "pfkey",
-       "pfloc",
-       "pfxl",
-       "pfx",
-       "pln",
-       "mc0",
-       "mc5p",
-       "mc4",
-       "mc5",
-       "pulse",
-       "qdial",
-       "rmclk",
-       "rep",
-       "rfi",
-       "reqmp",
-       "rs1",
-       "rs2",
-       "rs3",
-       "rf",
-       "rc",
-       "vpa",
-       "sc",
-       "scesc",
-       "ind",
-       "ri",
-       "scs",
-       "s0ds",
-       "s1ds",
-       "s2ds",
-       "s3ds",
-       "sgr1",
-       "setab",
-       "setaf",
-       "sgr",
-       "setb",
-       "smgb",
-       "smgbp",
-       "sclk",
-       "setcolor",
-       "scp",
-       "setf",
-       "smgl",
-       "smglp",
-       "smglr",
-       "slines",
-       "slength",
-       "smgr",
-       "smgrp",
-       "hts",
-       "smgtb",
-       "smgt",
-       "smgtp",
-       "wind",
-       "sbim",
-       "scsd",
-       "rbim",
-       "rcsd",
-       "subcs",
-       "supcs",
-       "ht",
-       "docr",
-       "tsl",
-       "tone",
-       "u0",
-       "u1",
-       "u2",
-       "u3",
-       "u4",
-       "u5",
-       "u6",
-       "u7",
-       "u8",
-       "u9",
-       "uc",
-       "hu",
-       "wait",
-       "xoffc",
-       "xonc",
-       "zerom",
-};
-
-#include <stdlib.h>
-
-static uint32_t
-_ti_strhash(const void * __restrict key, size_t keylen)
-{
-       static const uint16_t g[789] = {
-           0x0000, 0x00cd, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0094,
-           0x0000, 0x011b, 0x00a0, 0x0094, 0x002f, 0x00aa, 0x0026, 0x004b,
-           0x0000, 0x0163, 0x0171, 0x0000, 0x0000, 0x0064, 0x0019, 0x0000,
-           0x009b, 0x0113, 0x00ed, 0x007e, 0x0000, 0x0000, 0x0000, 0x002d,
-           0x0000, 0x00f4, 0x0000, 0x00cc, 0x00df, 0x0170, 0x0000, 0x0000,
-           0x0179, 0x0018, 0x0000, 0x013b, 0x0000, 0x0028, 0x0000, 0x0000,
-           0x00ef, 0x0000, 0x0137, 0x0061, 0x0000, 0x0000, 0x00ce, 0x00df,
-           0x00f0, 0x001f, 0x0074, 0x0000, 0x0000, 0x008f, 0x0069, 0x0000,
-           0x0134, 0x0000, 0x00ac, 0x0000, 0x0000, 0x0100, 0x0000, 0x0000,
-           0x0012, 0x0027, 0x0000, 0x0110, 0x0000, 0x0000, 0x0000, 0x0061,
-           0x00a7, 0x0000, 0x0061, 0x0000, 0x0000, 0x0096, 0x0000, 0x00e5,
-           0x0000, 0x00d1, 0x0017, 0x0000, 0x0000, 0x00bc, 0x00d6, 0x0000,
-           0x0182, 0x00d7, 0x012d, 0x0000, 0x00e2, 0x00b9, 0x0159, 0x0000,
-           0x001c, 0x00cc, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-           0x0000, 0x0031, 0x0106, 0x0087, 0x0157, 0x001d, 0x011a, 0x0119,
-           0x0000, 0x0000, 0x0000, 0x012b, 0x0000, 0x011b, 0x0000, 0x0154,
-           0x0000, 0x00ee, 0x00ad, 0x00f8, 0x0066, 0x0000, 0x0010, 0x0000,
-           0x0064, 0x000e, 0x0052, 0x0000, 0x016a, 0x0000, 0x0148, 0x0000,
-           0x0000, 0x0000, 0x00a4, 0x0000, 0x0000, 0x016d, 0x000b, 0x0000,
-           0x0000, 0x0000, 0x0000, 0x0058, 0x0091, 0x0000, 0x0022, 0x0000,
-           0x0000, 0x0000, 0x0000, 0x0000, 0x0026, 0x011a, 0x00a4, 0x013a,
-           0x0000, 0x0000, 0x0000, 0x0000, 0x0086, 0x0000, 0x00c0, 0x011f,
-           0x0000, 0x0093, 0x0000, 0x0000, 0x0042, 0x0174, 0x0101, 0x0000,
-           0x0065, 0x0086, 0x0000, 0x0000, 0x00e8, 0x0022, 0x000d, 0x0000,
-           0x008e, 0x000d, 0x0000, 0x008b, 0x0000, 0x0000, 0x0000, 0x0000,
-           0x0022, 0x0000, 0x011d, 0x0000, 0x0000, 0x0000, 0x010e, 0x0000,
-           0x0000, 0x0000, 0x0060, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-           0x0014, 0x00b3, 0x0000, 0x002e, 0x0051, 0x0000, 0x0102, 0x008e,
-           0x012b, 0x0145, 0x004c, 0x0000, 0x001e, 0x00fa, 0x0000, 0x0000,
-           0x0000, 0x0000, 0x00aa, 0x0000, 0x0000, 0x0000, 0x0103, 0x00a4,
-           0x003e, 0x0000, 0x0114, 0x0028, 0x005e, 0x015d, 0x00e7, 0x0044,
-           0x0000, 0x0000, 0x00c6, 0x008f, 0x0000, 0x00eb, 0x0000, 0x0000,
-           0x0000, 0x0169, 0x0000, 0x0110, 0x0093, 0x0000, 0x012c, 0x0178,
-           0x0000, 0x0000, 0x0024, 0x0000, 0x0000, 0x0000, 0x0000, 0x0158,
-           0x004d, 0x009c, 0x0186, 0x009b, 0x0000, 0x0163, 0x007c, 0x0078,
-           0x0000, 0x0000, 0x0172, 0x00d2, 0x0000, 0x0000, 0x00fc, 0x0000,
-           0x0000, 0x0000, 0x0133, 0x0104, 0x017e, 0x0162, 0x0050, 0x0000,
-           0x0023, 0x00c0, 0x0070, 0x0000, 0x0000, 0x0000, 0x0025, 0x0001,
-           0x0184, 0x0053, 0x0133, 0x0000, 0x0000, 0x0000, 0x0048, 0x0075,
-           0x0000, 0x00b2, 0x0056, 0x002c, 0x0000, 0x011c, 0x0000, 0x0000,
-           0x0000, 0x0000, 0x0000, 0x0166, 0x011b, 0x0000, 0x0039, 0x0020,
-           0x0000, 0x0000, 0x0000, 0x00dc, 0x0048, 0x0000, 0x0076, 0x0169,
-           0x00d7, 0x002a, 0x0032, 0x0013, 0x0153, 0x012f, 0x009c, 0x0041,
-           0x002f, 0x0000, 0x0000, 0x012e, 0x0000, 0x0000, 0x00dd, 0x0000,
-           0x0138, 0x000b, 0x0030, 0x008d, 0x0000, 0x0000, 0x0000, 0x0000,
-           0x0039, 0x017a, 0x00c5, 0x0100, 0x0000, 0x0000, 0x005c, 0x001f,
-           0x0000, 0x0000, 0x0000, 0x0000, 0x0110, 0x003e, 0x00a1, 0x0000,
-           0x0081, 0x0000, 0x0000, 0x0000, 0x00dd, 0x0142, 0x00c1, 0x0000,
-           0x0035, 0x0123, 0x0178, 0x00be, 0x015e, 0x0161, 0x0188, 0x0000,
-           0x0000, 0x0149, 0x0123, 0x0000, 0x0000, 0x0185, 0x0000, 0x0000,
-           0x0000, 0x004e, 0x0163, 0x0077, 0x00fa, 0x0000, 0x007b, 0x0006,
-           0x0101, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0158, 0x00d6,
-           0x00b0, 0x0180, 0x0003, 0x0000, 0x0000, 0x0000, 0x0136, 0x0045,
-           0x017e, 0x0000, 0x0000, 0x0000, 0x0126, 0x0090, 0x011b, 0x0000,
-           0x0000, 0x0000, 0x0000, 0x0000, 0x017b, 0x0000, 0x0053, 0x0000,
-           0x005c, 0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x007e, 0x014e,
-           0x0035, 0x00ed, 0x0000, 0x00d1, 0x00d8, 0x0142, 0x0168, 0x000a,
-           0x00d0, 0x0000, 0x0000, 0x0000, 0x00d9, 0x0000, 0x0000, 0x0087,
-           0x0000, 0x008a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0112, 0x006c,
-           0x011d, 0x0177, 0x0000, 0x0000, 0x0000, 0x0000, 0x0024, 0x001e,
-           0x0177, 0x00c4, 0x0000, 0x0000, 0x0000, 0x0014, 0x00c7, 0x00ae,
-           0x0042, 0x0180, 0x0075, 0x0000, 0x011c, 0x0064, 0x00a3, 0x00bc,
-           0x0001, 0x0000, 0x0000, 0x0016, 0x00c3, 0x00e4, 0x0009, 0x0000,
-           0x0000, 0x006b, 0x013c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-           0x00fa, 0x0000, 0x0000, 0x0000, 0x0117, 0x0000, 0x007c, 0x0060,
-           0x0149, 0x0059, 0x00d4, 0x014e, 0x000a, 0x014f, 0x0000, 0x0000,
-           0x0000, 0x00b6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0121,
-           0x0000, 0x0000, 0x0000, 0x007d, 0x0000, 0x0000, 0x001c, 0x0000,
-           0x0000, 0x00f9, 0x0000, 0x003b, 0x00ea, 0x0000, 0x00ad, 0x0000,
-           0x0000, 0x0000, 0x0155, 0x0000, 0x0141, 0x0000, 0x0000, 0x0000,
-           0x0187, 0x004b, 0x009f, 0x0000, 0x0114, 0x0000, 0x00dd, 0x0000,
-           0x0066, 0x0000, 0x0136, 0x0135, 0x0000, 0x0000, 0x0000, 0x0000,
-           0x0000, 0x001e, 0x0000, 0x0062, 0x0146, 0x0033, 0x0071, 0x0000,
-           0x0000, 0x010d, 0x004a, 0x0133, 0x0000, 0x0000, 0x0076, 0x0111,
-           0x0000, 0x00ba, 0x0000, 0x0000, 0x0000, 0x0038, 0x001d, 0x0158,
-           0x0072, 0x00a3, 0x0000, 0x008c, 0x0008, 0x0000, 0x0000, 0x0000,
-           0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x00ea, 0x0000, 0x003f,
-           0x0000, 0x0000, 0x0000, 0x004c, 0x0000, 0x00f9, 0x0000, 0x0000,
-           0x0000, 0x0147, 0x0182, 0x008f, 0x0156, 0x0000, 0x0000, 0x0000,
-           0x0000, 0x0000, 0x0011, 0x0000, 0x0102, 0x0040, 0x0000, 0x0000,
-           0x0130, 0x0000, 0x0000, 0x0000, 0x0126, 0x0026, 0x0145, 0x0000,
-           0x0000, 0x00ab, 0x0000, 0x0175, 0x0113, 0x0117, 0x010f, 0x000f,
-           0x0000, 0x00e3, 0x012e, 0x0000, 0x0000, 0x00f5, 0x0020, 0x0000,
-           0x0000, 0x00a8, 0x0000, 0x0000, 0x012a, 0x009f, 0x0085, 0x0000,
-           0x00b6, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0108,
-           0x00cb, 0x0000, 0x0000, 0x0000, 0x0053, 0x0000, 0x007f, 0x0000,
-           0x008c, 0x0113, 0x0000, 0x0000, 0x0156, 0x0169, 0x0000, 0x0009,
-           0x0000, 0x0073, 0x0000, 0x007e, 0x0000, 0x0000, 0x0000, 0x00eb,
-           0x0000, 0x0153, 0x0084, 0x0000, 0x0000, 0x0148, 0x0000, 0x0000,
-           0x011c, 0x0000, 0x00ec, 0x0000, 0x0000, 0x015a, 0x0000, 0x0000,
-           0x0000, 0x0000, 0x012a, 0x0000, 0x0000, 0x015d, 0x0000, 0x00ae,
-           0x0000, 0x0000, 0x00db, 0x0000, 0x0000, 0x0000, 0x0000, 0x0101,
-           0x0067, 0x0000, 0x010c, 0x0000, 0x0032, 0x0000, 0x0000, 0x0000,
-           0x0000, 0x0000, 0x0167, 0x0000, 0x00e4, 0x0000, 0x00a2, 0x0000,
-           0x0067, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0181, 0x0000,
-           0x015b, 0x0046, 0x0000, 0x0000, 0x0000, 0x00fd, 0x0000, 0x0000,
-           0x00a8, 0x0000, 0x0008, 0x00a6, 0x00b5, 0x0000, 0x0000, 0x0000,
-           0x0000, 0x0000, 0x0000, 0x006b, 0x0000, 0x0000, 0x00b1, 0x00a2,
-           0x0000, 0x0000, 0x0000, 0x0166, 0x0000,
-       };
-       uint32_t h[3];
-
-       mi_vector_hash(key, keylen, 0x8e1051e9U, h);
-       return (g[h[0] % 789] + g[h[1] % 789]) % 394;
-}
-
-const char *
-_ti_strid(ssize_t idx)
-{
-
-       if ((size_t)idx > __arraycount(_ti_strids))
-               return NULL;
-       return _ti_strids[idx];
-}
-
-ssize_t
-_ti_strindex(const char *key)
-{
-       uint32_t idx;
-
-       idx = _ti_strhash((const unsigned char *)key, strlen(key));
-       if (idx > __arraycount(_ti_strids) ||
-           strcmp(key, _ti_strids[idx]) != 0)
-               return -1;
-       return idx;
-}
diff --git a/lib/libterminfo/minix-config.inc b/lib/libterminfo/minix-config.inc
deleted file mode 100644 (file)
index 1678da6..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-NETBSDINCLUDES= /usr/include/
-
-CPPFLAGS+=     -D_NETBSD_SOURCE
-
-MKLINKLIB=     yes
index 304f5eddf1b45b3b5390b60f471e8d769e175dc4..f0eddcb97d71cafcab6b8ad823da0688f64e7055 100644 (file)
@@ -1,7 +1,7 @@
-/* $NetBSD: setupterm.c,v 1.2 2010/02/11 00:27:09 roy Exp $ */
+/* $NetBSD: setupterm.c,v 1.3 2011/10/03 19:18:55 roy Exp $ */
 
 /*
- * Copyright (c) 2009 The NetBSD Foundation, Inc.
+ * Copyright (c) 2009, 2011 The NetBSD Foundation, Inc.
  *
  * This code is derived from software contributed to The NetBSD Foundation
  * by Roy Marples.
@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: setupterm.c,v 1.2 2010/02/11 00:27:09 roy Exp $");
+__RCSID("$NetBSD: setupterm.c,v 1.3 2011/10/03 19:18:55 roy Exp $");
 
 #include <assert.h>
 #include <err.h>
@@ -82,7 +82,7 @@ ti_setupterm(TERMINAL **nterm, const char *term, int fildes, int *errret)
 
        error = _ti_getterm(*nterm, term, 0);
        if (error != 1) {
-               free(*nterm);
+               del_curterm(*nterm);
                *nterm = NULL;
                switch (error) {
                case -1:
index 97c9f92d6b8fd947359f10a616abc86fb7de7a87..16243a0b0de3ccc0c3c1f32b6ff47b6df64ff1ba 100644 (file)
@@ -1,2 +1,5 @@
+#      $NetBSD: shlib_version,v 1.1 2010/02/03 15:16:32 roy Exp $
+#      Remember to update distrib/sets/lists/base/shl.* when changing
+#
 major=0
 minor=0
index a76a4cfd73d739aca73666a5263e79a5ec1cdc92..eff6619f909cd7ce8594693363e1ba34d7ecb29f 100644 (file)
@@ -1,7 +1,7 @@
-/* $NetBSD: term.c,v 1.11 2010/02/26 00:09:00 roy Exp $ */
+/* $NetBSD: term.c,v 1.16 2012/06/06 13:36:58 joerg Exp $ */
 
 /*
- * Copyright (c) 2009, 2010 The NetBSD Foundation, Inc.
+ * Copyright (c) 2009, 2010, 2011 The NetBSD Foundation, Inc.
  *
  * This code is derived from software contributed to The NetBSD Foundation
  * by Roy Marples.
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: term.c,v 1.11 2010/02/26 00:09:00 roy Exp $");
+__RCSID("$NetBSD: term.c,v 1.16 2012/06/06 13:36:58 joerg Exp $");
 
 #include <sys/stat.h>
 
 #include <assert.h>
+#include <cdbr.h>
 #include <ctype.h>
 #include <errno.h>
 #include <fcntl.h>
 #include <limits.h>
-#include <ndbm.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -66,26 +66,26 @@ _ti_readterm(TERMINAL *term, const char *cap, size_t caplen, int flags)
        TERMUSERDEF *ud;
 
        ver = *cap++;
-       /* Only read version 1 and 2 structures */
-       if (ver != 1 && ver != 2) {
+       /* Only read version 1 structures */
+       if (ver != 1) {
                errno = EINVAL;
                return -1;
        }
 
        term->flags = calloc(TIFLAGMAX + 1, sizeof(char));
        if (term->flags == NULL)
-               goto err;
+               return -1;
        term->nums = malloc((TINUMMAX + 1) * sizeof(short));
        if (term->nums == NULL)
-               goto err;
+               return -1;
        memset(term->nums, (short)-1, (TINUMMAX + 1) * sizeof(short));
        term->strs = calloc(TISTRMAX + 1, sizeof(char *));
        if (term->strs == NULL)
-               goto err;
+               return -1;
        term->_arealen = caplen;
        term->_area = malloc(term->_arealen);
        if (term->_area == NULL)
-               goto err;
+               return -1;
        memcpy(term->_area, cap, term->_arealen);
 
        cap = term->_area;
@@ -93,17 +93,13 @@ _ti_readterm(TERMINAL *term, const char *cap, size_t caplen, int flags)
        cap += sizeof(uint16_t);
        term->name = cap;
        cap += len;
-       if (ver == 1)
+       len = le16dec(cap);
+       cap += sizeof(uint16_t);
+       if (len == 0)
                term->_alias = NULL;
        else {
-               len = le16dec(cap);
-               cap += sizeof(uint16_t);
-               if (len == 0)
-                       term->_alias = NULL;
-               else {
-                       term->_alias = cap;
-                       cap += len;
-               }
+               term->_alias = cap;
+               cap += len;
        }
        len = le16dec(cap);
        cap += sizeof(uint16_t);
@@ -209,55 +205,65 @@ _ti_readterm(TERMINAL *term, const char *cap, size_t caplen, int flags)
                                break;
                        default:
                                errno = EINVAL;
-                               goto err;
+                               return -1;
                        }
                }
        }
        return 1;
-       
-err:
-       _ti_freeterm(term);
-       return -1;
 }
 
 static int
 _ti_dbgetterm(TERMINAL *term, const char *path, const char *name, int flags)
 {
-       DBM *db;
-       datum dt;
-       char *p;
+       struct cdbr *db;
+       const void *data;
+       char *db_name;
+       const uint8_t *data8;
+       size_t len, klen;
        int r;
 
-       db = dbm_open(path, O_RDONLY, 0644);
+       if (asprintf(&db_name, "%s.cdb", path) < 0)
+               return -1;
+
+       db = cdbr_open(db_name, CDBR_DEFAULT);
+       free(db_name);
        if (db == NULL)
                return -1;
+
+       klen = strlen(name) + 1;
+       if (cdbr_find(db, name, klen, &data, &len) == -1)
+               goto fail;
+       data8 = data;
+       if (len == 0)
+               goto fail;
+       /* Check for alias first, fall through to processing normal entries. */
+       if (data8[0] == 2) {
+               if (klen + 7 > len || le16dec(data8 + 5) != klen)
+                       goto fail;
+               if (memcmp(data8 + 7, name, klen))
+                       goto fail;
+               if (cdbr_get(db, le32dec(data8 + 1), &data, &len))
+                       goto fail;
+               data8 = data;
+               if (data8[0] != 1)
+                       goto fail;
+       } else  if (data8[0] != 1)
+               goto fail;
+       else if (klen + 3 >= len || le16dec(data8 + 1) != klen)
+               goto fail;
+       else if (memcmp(data8 + 3, name, klen))
+               goto fail;
+
        strlcpy(database, path, sizeof(database));
        _ti_database = database;
-       dt.dptr = (void *)__UNCONST(name);
-       dt.dsize = strlen(name);
-       dt = dbm_fetch(db, dt);
-       if (dt.dptr == NULL) {
-               dbm_close(db);
-               return 0;
-       }
 
-       for (;;) {
-               p = (char *)dt.dptr;
-               if (*p++ != 0) /* not alias */
-                       break;
-               dt.dsize = le16dec(p) - 1;
-               p += sizeof(uint16_t);
-               dt.dptr = p;
-               dt = dbm_fetch(db, dt);
-               if (dt.dptr == NULL) {
-                       dbm_close(db);
-                       return 0;
-               }
-       }
-               
-       r = _ti_readterm(term, (char *)dt.dptr, dt.dsize, flags);
-       dbm_close(db);
+       r = _ti_readterm(term, data, len, flags);
+       cdbr_close(db);
        return r;
+
+ fail:
+       cdbr_close(db);
+       return 0;
 }
 
 static int
@@ -305,7 +311,7 @@ ticcmp(const TIC *tic, const char *name)
                        l = strlen(alias);
                else
                        l = s - alias;
-               if (len == l && strncmp(alias, name, l) == 0)
+               if (len == l && memcmp(alias, name, l) == 0)
                        return 0;
                if (s == NULL)
                        break;
@@ -358,7 +364,8 @@ _ti_findterm(TERMINAL *term, const char *name, int flags)
                if (tic != NULL && ticcmp(tic, name) == 0) {
                        len = _ti_flatten(&f, tic);
                        if (len != -1) {
-                               r = _ti_readterm(term, (char *)f, len, flags);
+                               r = _ti_readterm(term, (char *)f, (size_t)len,
+                                   flags);
                                free(f);
                        }
                }
@@ -407,16 +414,3 @@ _ti_getterm(TERMINAL *term, const char *name, int flags)
 
        return r;
 }
-       
-void
-_ti_freeterm(TERMINAL *term)
-{
-
-       if (term != NULL) {
-               free(term->_area);
-               free(term->strs);
-               free(term->nums);
-               free(term->flags);
-               free(term->_userdefs);
-       }
-}
index 102e186b596201150d93eb165d1c31355667e07a..92af30faff53209e3cee0fe36de230409dfa502b 100644 (file)
@@ -1,7 +1,7 @@
-/* $NetBSD: term.h,v 1.6 2010/09/22 06:10:51 roy Exp $ */
+/* $NetBSD: term.h,v 1.12 2012/05/29 00:27:59 dholland Exp $ */
 
 /*
- * Copyright (c) 2009, 2010 The NetBSD Foundation, Inc.
+ * Copyright (c) 2009, 2010, 2011 The NetBSD Foundation, Inc.
  *
  * This code is derived from software contributed to The NetBSD Foundation
  * by Roy Marples.
@@ -1012,7 +1012,7 @@ enum TISTRS{
 #define t_set_bottom_margin_parm(t)    (t)->strs[TICODE_smgbp]
 #define t_set_clock(t)                 (t)->strs[TICODE_sclk]
 #define t_set_color_band(t)            (t)->strs[TICODE_setcolor]
-#define t_set_color_paid(t)            (t)->strs[TICODE_scp]
+#define t_set_color_pair(t)            (t)->strs[TICODE_scp]
 #define t_set_foreground(t)            (t)->strs[TICODE_setf]
 #define t_set_left_margin(t)           (t)->strs[TICODE_smgl]
 #define t_set_left_margin_parm(t)      (t)->strs[TICODE_smglp]
@@ -1407,7 +1407,7 @@ enum TISTRS{
 #define set_bottom_margin_parm          t_set_bottom_margin_parm(cur_term)
 #define set_clock                       t_set_clock(cur_term)
 #define set_color_band                  t_set_color_band(cur_term)
-#define set_color_paid                  t_set_color_paid(cur_term)
+#define set_color_pair                  t_set_color_pair(cur_term)
 #define set_foreground                  t_set_foreground(cur_term)
 #define set_left_margin                         t_set_left_margin(cur_term)
 #define set_left_margin_parm            t_set_left_margin_parm(cur_term)
@@ -1460,18 +1460,18 @@ typedef struct {
 } TERMINAL;
 #endif
 
+#include <sys/cdefs.h>
+
 __BEGIN_DECLS
 
 extern TERMINAL *cur_term;
-#ifndef _TERMCAP_H
-extern short ospeed;
-extern char PC;
-#endif
 
 /* setup functions */
 int            setupterm(const char *, int, int *);
 TERMINAL *     set_curterm(TERMINAL *);
 int            del_curterm(TERMINAL *);
+char *         termname(void);
+char *         longname(void);
 
 /* information functions */
 int            tigetflag(const char *);
@@ -1482,18 +1482,12 @@ char *          tigetstr(const char *);
 char *         tparm(const char *, long, long, long, long, long,
                long, long, long, long);
 
-#ifndef _TERMCAP_H
-/* Output functions. */
-int            putp(const char *);
-int            tputs(const char *, int, int (*)(int));
-#endif
-
 /* Non standard functions, but provide a level of thread safety */
 int            ti_setupterm(TERMINAL **, const char *, int, int *);
 int            ti_getflag(const TERMINAL *, const char *);
 int            ti_getnum(const TERMINAL *, const char *);
 const char *   ti_getstr(const TERMINAL *, const char *);
-char *         t_parm(TERMINAL *, const char *,
+char *         ti_parm(TERMINAL *, const char *,
     long, long, long, long, long, long, long, long, long);
 
 /* These functions do not use PC or speed, but the terminal */
@@ -1502,19 +1496,23 @@ int             ti_puts(const TERMINAL *, const char *, int,
 int            ti_putp(const TERMINAL *, const char *);
 
 /* Using tparm can be kunkly, so provide a variadic function */
-char *         vtparm(const char *, ...);
+/* This is not standard, but ncurses also provides this */
+char *         tiparm(const char *, ...);
 /* And a thread safe version */
-char *         t_vparm(TERMINAL *, const char *, ...);
+char *         ti_tiparm(TERMINAL *, const char *, ...);
 
 /* Default to X/Open tparm, but allow it to be variadic also */
 #ifdef TPARM_VARARGS
-#  define tparm        vtparm
-#  define t_parm t_vtparm
+#  define tparm        tiparm
+#  define ti_parm ti_tiparm
 #endif
 
 /* Convert a termcap string into a terminfo string.
  * The passed string is destroyed and the return string needs to be freed. */
 char *         captoinfo(char *);
 
+/* POSIX says that term.h should also pull in our termcap definitions. */
+#include <termcap.h>
+
 __END_DECLS
 #endif
index 63c069dd4a9c2e45c99cb96f35e55129f928fb59..4314c1115e6887d121c44600620da19ef9def5b1 100644 (file)
@@ -1,4 +1,4 @@
-/* $NetBSD: term_private.h,v 1.8 2010/09/22 06:10:51 roy Exp $ */
+/* $NetBSD: term_private.h,v 1.10 2012/06/03 23:19:10 joerg Exp $ */
 
 /*
  * Copyright (c) 2009, 2010 The NetBSD Foundation, Inc.
  * including the null terminator.
  * The largest capability block we can handle is 65535 bytes.
  * This means that we exceed the current terminfo defined limits.
- * The header is version (char), name.
- * version 0 is an alias, and the name refers to the real terminfo.
- * version 1 capabilities are defined as so:
+ *
+ * Version 1 capabilities are defined as:
+ * header byte (always 1)
+ * name
  * description,
  * cap length, num flags, index, char,
  * cap length, num numbers, index, number,
  * cap length, num strings, index, string,
- * cap lelngth, num undefined caps, name, type (char), flag, number, string
- * The database itself is created using ndbm(3) and the numbers are
+ * cap length, num undefined caps, name, type (char), flag, number, string
+ *
+ * Version 2 entries are aliases and defined as:
+ * header byte (always 2)
+ * 32bit id of the corresponding terminal in the file
+ * name
+ *
+ * The database itself is created using cdbw(3) and the numbers are
  * always stored as little endian.
  */
 
@@ -114,7 +121,6 @@ const char *        _ti_numid(ssize_t);
 const char *   _ti_strid(ssize_t);
 int            _ti_getterm(TERMINAL *, const char *, int);
 void           _ti_setospeed(TERMINAL *);
-void           _ti_freeterm(TERMINAL *);
 
 /* libterminfo can compile terminfo strings too */
 #define TIC_WARNING    (1 << 0)
index da08d246ca819ffce29b6f854c7283f753e0e503..956417b257e95861a31da62f80213df852015f87 100644 (file)
@@ -1,4 +1,4 @@
-.\"    $NetBSD: termcap.3,v 1.4 2010/02/04 09:12:55 wiz Exp $
+.\"    $NetBSD: termcap.3,v 1.6 2011/03/14 11:44:20 christos Exp $
 .\"
 .\" Copyright (c) 2009 The NetBSD Foundation, Inc.
 .\" All rights reserved.
@@ -27,7 +27,7 @@
 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 .\" POSSIBILITY OF SUCH DAMAGE.
 .\"
-.Dd December 7, 2009
+.Dd March 14, 2011
 .Dt TERMCAP 3
 .Os
 .Sh NAME
@@ -124,7 +124,19 @@ function returns a cursor addressing string decoded from
 to go to column
 .Fa destcol
 in line
-.Fa destline .
+.Fa destline ,
+or
+.Dv NULL
+on error conditions such as out of memory.
+Please note that
+.Fn tgoto
+can return an incomplete value on a malformed input sequence.
+Historically
+.Fn tgoto
+used to return
+.Dq OOPS
+on those conditions, so newer programs should now be checking the return
+value.
 .Sh SEE ALSO
 .Xr terminfo 3 ,
 .Xr terminfo 5
index e9d422532c7274d3bb02f21b00c64f1bbbaa5f05..aed6080177d35ce8aa67d49c909f5d0580a6b767 100644 (file)
@@ -1,4 +1,4 @@
-/* $NetBSD: termcap.c,v 1.10 2010/10/12 12:49:27 christos Exp $ */
+/* $NetBSD: termcap.c,v 1.17 2011/11/13 15:24:04 christos Exp $ */
 
 /*
  * Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: termcap.c,v 1.10 2010/10/12 12:49:27 christos Exp $");
+__RCSID("$NetBSD: termcap.c,v 1.17 2011/11/13 15:24:04 christos Exp $");
 
 #include <assert.h>
 #include <ctype.h>
@@ -74,13 +74,12 @@ tgetent(__unused char *bp, const char *name)
 }
 
 int
-tgetflag(const char *id)
+tgetflag(const char *id2)
 {
        uint32_t ind;
        size_t i;
        TERMUSERDEF *ud;
-
-       _DIAGASSERT(id != NULL);
+       const char id[] = { id2[0], id2[0] ? id2[1] : '\0', '\0' };
 
        if (cur_term == NULL)
                return 0;
@@ -99,14 +98,13 @@ tgetflag(const char *id)
 }
 
 int
-tgetnum(const char *id)
+tgetnum(const char *id2)
 {
        uint32_t ind;
        size_t i;
        TERMUSERDEF *ud;
        const TENTRY *te;
-
-       _DIAGASSERT(id != NULL);
+       const char id[] = { id2[0], id2[0] ? id2[1] : '\0', '\0' };
 
        if (cur_term == NULL)
                return -1;
@@ -132,14 +130,13 @@ tgetnum(const char *id)
 }
 
 char *
-tgetstr(const char *id, char **area)
+tgetstr(const char *id2, char **area)
 {
        uint32_t ind;
        size_t i;
        TERMUSERDEF *ud;
        const char *str;
-
-       _DIAGASSERT(id != NULL);
+       const char id[] = { id2[0], id2[0] ? id2[1] : '\0', '\0' };
 
        if (cur_term == NULL)
                return NULL;
@@ -178,9 +175,8 @@ tgetstr(const char *id, char **area)
 char *
 tgoto(const char *cm, int destcol, int destline)
 {
-       
        _DIAGASSERT(cm != NULL);
-       return vtparm(cm, destline, destcol);
+       return tiparm(cm, destline, destcol);
 }
 
 static const char *
@@ -223,14 +219,82 @@ strname(const char *key)
        return key;
 }
 
-/* We don't currently map %> %B %D
- * That means no conversion for regent100, hz1500, act4, act5, mime terms. */
+/* Print a parameter if needed */
+static int
+printparam(char **dst, char p, int *nop)
+{
+       if (*nop != 0) {
+               *nop = 0;
+               return 0;
+       }
+
+       *(*dst)++ = '%';
+       *(*dst)++ = 'p';
+       *(*dst)++ = '0' + p;
+       return 3;
+}
+
+/* Convert a termcap character into terminfo equivalents */
+static int
+printchar(char **dst, const char **src)
+{
+       unsigned char v;
+       int l;
+
+       l = 4;
+       v = (unsigned char) *++(*src);
+       if (v == '\\') {
+               v = (unsigned char) *++(*src);
+               switch (v) {
+               case '0':
+               case '1':
+               case '2':
+               case '3':
+                       v = 0;
+                       while (isdigit((unsigned char) **src))  
+                               v = 8 * v + ((unsigned char) *(*src)++ - '0');
+                       (*src)--;
+                       break;
+               case '\0':
+                       v = '\\';
+                       break;
+               }
+       } else if (v == '^')
+               v = (unsigned char) (*++(*src) & 0x1f);
+       *(*dst)++ = '%';
+       if (isgraph(v) && v != ',' && v != '\'' && v != '\\' && v != ':') {
+               *(*dst)++ = '\'';
+               *(*dst)++ = v;
+               *(*dst)++ = '\'';
+       } else {
+               *(*dst)++ = '{';
+               if (v > 99) {
+                       *(*dst)++ = '0'+ v / 100;
+                       l++;
+               }
+               if (v > 9) {
+                       *(*dst)++ = '0' + ((int) (v / 10)) % 10;
+                       l++;
+               }
+               *(*dst)++ = '0' + v % 10;
+               *(*dst)++ = '}';
+       }
+       return l;
+}
+
+/* Convert termcap commands into terminfo commands */
+static const char fmtB[] = "%p0%{10}%/%{16}%*%p0%{10}%m%+";
+static const char fmtD[] = "%p0%p0%{2}%*%-";
+static const char fmtIf[] = "%p0%p0%?";
+static const char fmtThen[] = "%>%t";
+static const char fmtElse[] = "%+%;";
+
 static char *
 strval(const char *val)
 {
        char *info, *ip, c;
        const char *ps, *pe;
-       int p;
+       int p, nop;
        size_t len, l;
 
        len = 1024; /* no single string should be bigger */
@@ -254,7 +318,7 @@ strval(const char *val)
        } else
                ps = pe  = NULL;
 
-       l = 0;
+       l = nop = 0;
        p = 1;
        for (; *val != '\0'; val++) {
                if (l + 2 > len)
@@ -270,27 +334,98 @@ strval(const char *val)
                        l++;
                        continue;
                }
-               switch (c = *(++val)) {
+               switch (c = *++(val)) {
+               case 'B':
+                       if (l + sizeof(fmtB) > len)
+                               goto elen;
+                       memcpy(ip, fmtB, sizeof(fmtB) - 1);
+                       /* Replace the embedded parameters with real ones */
+                       ip[2] += p;
+                       ip[19] += p;
+                       ip += sizeof(fmtB) - 1;
+                       l += sizeof(fmtB) - 1;
+                       nop = 1;
+                       continue;
+               case 'D':
+                       if (l + sizeof(fmtD) > len)
+                               goto elen;
+                       memcpy(ip, fmtD, sizeof(fmtD) - 1);
+                       /* Replace the embedded parameters with real ones */
+                       ip[2] += p;
+                       ip[5] += p;
+                       ip += sizeof(fmtD) - 1;
+                       l += sizeof(fmtD) - 1;
+                       nop = 1;
+                       continue;
+               case 'r':
+                       /* non op as switched below */
+                       break;
+               case '2': /* FALLTHROUGH */
+               case '3': /* FALLTHROUGH */
                case 'd':
-                       if (l + 6 > len)
+                       if (l + 7 > len)
                                goto elen;
+                       l += printparam(&ip, p, &nop);
                        *ip++ = '%';
-                       *ip++ = 'p';
-                       *ip++ = '0' + p;
-                       *ip++ = '%';
+                       if (c != 'd') {
+                               *ip++ = c;
+                               l++;
+                       }
                        *ip++ = 'd';
-                       l += 5;
-                       /* FALLTHROUGH */
-               case 'r':
-                       p = 3 - p;
+                       l += 2;
+                       break;
+               case '+':
+                       if (l + 13 > len)
+                               goto elen;
+                       l += printparam(&ip, p, &nop);
+                       l += printchar(&ip, &val);
+                       *ip++ = '%';
+                       *ip++ = c; 
+                       *ip++ = '%';
+                       *ip++ = 'c';
+                       l += 7;
+                       break;
+               case '>':
+                       if (l + sizeof(fmtIf) + sizeof(fmtThen) +
+                           sizeof(fmtElse) + (6 * 2) > len)
+                               goto elen;
+
+                       memcpy(ip, fmtIf, sizeof(fmtIf) - 1);
+                       /* Replace the embedded parameters with real ones */
+                       ip[2] += p;
+                       ip[5] += p;
+                       ip += sizeof(fmtIf) - 1;
+                       l += sizeof(fmtIf) - 1;
+                       l += printchar(&ip, &val);
+                       memcpy(ip, fmtThen, sizeof(fmtThen) - 1);
+                       ip += sizeof(fmtThen) - 1;
+                       l += sizeof(fmtThen) - 1;
+                       l += printchar(&ip, &val);
+                       memcpy(ip, fmtElse, sizeof(fmtElse) - 1);
+                       ip += sizeof(fmtElse) - 1;
+                       l += sizeof(fmtElse) - 1;
+                       l += 16;
+                       nop = 1;
+                       continue;
+               case '.':
+                       if (l + 6 > len)
+                               goto elen;
+                       l += printparam(&ip, p, &nop);
+                       *ip++ = '%';
+                       *ip++ = 'c';
+                       l += 2;
                        break;
                default:
                        /* Hope it matches a terminfo command. */
                        *ip++ = '%';
                        *ip++ = c;
                        l += 2;
+                       if (c == 'i')
+                               continue;
                        break;
                }
+               /* Swap p1 and p2 */
+               p = 3 - p;
        }
 
        /* \E\ is valid termcap.
index 3c5e1da6d6446fd9c45ce61048ea5bd2a01cba34..d64c8741ac3016b15a94c67bcb5223c77f41a0ee 100644 (file)
@@ -1,7 +1,7 @@
-/* $NetBSD: termcap.h,v 1.1 2010/02/03 15:16:32 roy Exp $ */
+/* $NetBSD: termcap.h,v 1.2 2011/04/11 21:13:09 roy Exp $ */
 
 /*
- * Copyright (c) 2009 The NetBSD Foundation, Inc.
+ * Copyright (c) 2009, 2011 The NetBSD Foundation, Inc.
  *
  * This code is derived from software contributed to The NetBSD Foundation
  * by Roy Marples.
@@ -34,7 +34,6 @@
 
 __BEGIN_DECLS
 
-#ifndef _TERM_H
 /* Output functions.
  * These are still valid for terminfo. */
 int            putp(const char *);
@@ -42,8 +41,6 @@ int           tputs(const char *, int, int (*)(int));
 
 extern short ospeed;
 extern char PC;
-#endif
-
 extern char *BC;
 extern char *UP;
 
diff --git a/lib/libterminfo/termcap_hash.c b/lib/libterminfo/termcap_hash.c
deleted file mode 100644 (file)
index 92b2090..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-/* $NetBSD: termcap_hash.c,v 1.3 2010/02/12 10:18:56 roy Exp $ */
-/* DO NOT EDIT
- * Automatically generated from termcap.c */
-
-#include <sys/cdefs.h>
-__RCSID("$NetBSD: termcap_hash.c,v 1.3 2010/02/12 10:18:56 roy Exp $");
-
-#include <stdint.h>
-#include <stdlib.h>
-#include <term_private.h>
-
-#include <stdlib.h>
-
-static uint32_t
-_t_flaghash(const void * __restrict key, size_t keylen)
-{
-       static const uint8_t g[75] = {
-           0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x08, 0x00, 0x00, 0x19,
-           0x24, 0x0a, 0x00, 0x14, 0x20, 0x1d, 0x0e, 0x0d, 0x00, 0x0d,
-           0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x1a, 0x00,
-           0x12, 0x00, 0x16, 0x00, 0x1d, 0x00, 0x00, 0x11, 0x00, 0x00,
-           0x00, 0x17, 0x0e, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x10, 0x00,
-           0x00, 0x1f, 0x02, 0x00, 0x00, 0x00, 0x0c, 0x13, 0x00, 0x23,
-           0x00, 0x1f, 0x00, 0x00, 0x05, 0x00, 0x00, 0x15, 0x1d, 0x00,
-           0x09, 0x00, 0x0f, 0x1b, 0x01,
-       };
-       uint32_t h[3];
-
-       mi_vector_hash(key, keylen, 0x5a53bb7cU, h);
-       return (g[h[0] % 75] + g[h[1] % 75]) % 37;
-}
-
-#include <stdlib.h>
-
-static uint32_t
-_t_numhash(const void * __restrict key, size_t keylen)
-{
-       static const uint8_t g[67] = {
-           0x03, 0x0e, 0x17, 0x01, 0x10, 0x00, 0x00, 0x00, 0x1e, 0x00,
-           0x10, 0x00, 0x05, 0x13, 0x00, 0x00, 0x17, 0x00, 0x06, 0x18,
-           0x03, 0x00, 0x00, 0x09, 0x18, 0x00, 0x07, 0x00, 0x00, 0x0c,
-           0x14, 0x03, 0x01, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
-           0x00, 0x1e, 0x00, 0x1d, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04,
-           0x17, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x15, 0x0e, 0x0e,
-           0x00, 0x0e, 0x00, 0x00, 0x00, 0x12, 0x00,
-       };
-       uint32_t h[3];
-
-       mi_vector_hash(key, keylen, 0x6452f8e6U, h);
-       return (g[h[0] % 67] + g[h[1] % 67]) % 33;
-}
-
-#include <stdlib.h>
-
-static uint32_t
-_t_strhash(const void * __restrict key, size_t keylen)
-{
-       static const uint16_t g[789] = {
-           0x0047, 0x015c, 0x002c, 0x00b5, 0x0000, 0x0000, 0x00ea, 0x0000,
-           0x0000, 0x0127, 0x0000, 0x00a7, 0x00c0, 0x00ee, 0x0000, 0x0049,
-           0x0000, 0x0000, 0x0000, 0x004a, 0x0136, 0x0000, 0x0140, 0x0000,
-           0x0016, 0x0123, 0x002f, 0x00e7, 0x0000, 0x0000, 0x0000, 0x0042,
-           0x0000, 0x00ee, 0x0000, 0x0000, 0x001c, 0x0009, 0x008b, 0x0000,
-           0x0002, 0x012d, 0x0000, 0x0000, 0x001f, 0x0000, 0x0000, 0x0000,
-           0x00c0, 0x0000, 0x0000, 0x0034, 0x004d, 0x0000, 0x0000, 0x0000,
-           0x0000, 0x0000, 0x0000, 0x00de, 0x0152, 0x0000, 0x00d9, 0x00dc,
-           0x00c5, 0x0096, 0x0001, 0x0058, 0x010e, 0x00ba, 0x0000, 0x0000,
-           0x0021, 0x0000, 0x0000, 0x00f0, 0x0000, 0x0000, 0x00c6, 0x0000,
-           0x0094, 0x008d, 0x0021, 0x0000, 0x0000, 0x00b8, 0x0060, 0x0000,
-           0x000e, 0x0000, 0x0000, 0x003a, 0x0026, 0x0089, 0x003f, 0x0145,
-           0x0050, 0x0000, 0x0000, 0x0170, 0x00f0, 0x0000, 0x0000, 0x0000,
-           0x00b1, 0x007d, 0x0045, 0x00de, 0x006d, 0x0092, 0x0000, 0x0177,
-           0x0049, 0x0000, 0x0000, 0x017a, 0x0000, 0x00e1, 0x0023, 0x0000,
-           0x0000, 0x0000, 0x0096, 0x0098, 0x0000, 0x0000, 0x0000, 0x0000,
-           0x0176, 0x0089, 0x00fd, 0x0000, 0x0000, 0x00e5, 0x0000, 0x0000,
-           0x0170, 0x0000, 0x014b, 0x0022, 0x0075, 0x0000, 0x0000, 0x0000,
-           0x0170, 0x0015, 0x014f, 0x012e, 0x0041, 0x010c, 0x0159, 0x00c1,
-           0x0000, 0x0000, 0x0000, 0x0000, 0x0147, 0x0011, 0x0045, 0x0150,
-           0x0000, 0x0000, 0x0000, 0x0000, 0x003e, 0x0000, 0x0000, 0x0168,
-           0x00fe, 0x0000, 0x0000, 0x00b2, 0x0000, 0x007a, 0x0000, 0x0000,
-           0x0000, 0x0000, 0x0000, 0x0079, 0x0000, 0x0031, 0x015e, 0x0024,
-           0x0090, 0x0000, 0x0000, 0x0000, 0x005b, 0x0000, 0x00eb, 0x0000,
-           0x0142, 0x0091, 0x016f, 0x0180, 0x00a8, 0x0000, 0x0000, 0x0000,
-           0x0000, 0x0000, 0x0000, 0x0000, 0x00e2, 0x0075, 0x0000, 0x0000,
-           0x0000, 0x0000, 0x0050, 0x016d, 0x00f5, 0x0018, 0x006d, 0x0059,
-           0x00bb, 0x0048, 0x0000, 0x0000, 0x0000, 0x0000, 0x00ec, 0x0130,
-           0x0054, 0x0067, 0x0000, 0x0000, 0x0000, 0x016e, 0x0072, 0x0154,
-           0x0000, 0x0000, 0x0000, 0x012d, 0x00a5, 0x007c, 0x0000, 0x0036,
-           0x0071, 0x0000, 0x0080, 0x0000, 0x00ba, 0x0000, 0x00e5, 0x0064,
-           0x0173, 0x006c, 0x0043, 0x00ab, 0x0152, 0x0082, 0x0000, 0x0172,
-           0x0000, 0x0000, 0x0000, 0x0000, 0x0172, 0x010a, 0x0000, 0x003e,
-           0x015b, 0x0000, 0x00dd, 0x0088, 0x0000, 0x003e, 0x0152, 0x006a,
-           0x0000, 0x0000, 0x0000, 0x0169, 0x0076, 0x008e, 0x000a, 0x009b,
-           0x0000, 0x0000, 0x0033, 0x014e, 0x0000, 0x0000, 0x0145, 0x0041,
-           0x00bd, 0x012f, 0x0177, 0x0053, 0x0031, 0x0054, 0x0000, 0x0000,
-           0x0000, 0x0105, 0x0000, 0x0000, 0x0000, 0x0000, 0x011b, 0x00b6,
-           0x00c7, 0x00b4, 0x0000, 0x0000, 0x0112, 0x009b, 0x0000, 0x0000,
-           0x00cd, 0x0000, 0x0052, 0x0094, 0x005d, 0x00f7, 0x00f5, 0x011a,
-           0x0000, 0x0000, 0x00ed, 0x0000, 0x00c2, 0x0000, 0x0000, 0x0000,
-           0x011b, 0x0000, 0x0000, 0x0000, 0x0124, 0x0064, 0x0000, 0x0000,
-           0x0045, 0x0063, 0x0131, 0x0170, 0x0000, 0x0090, 0x0000, 0x0000,
-           0x0000, 0x015d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-           0x0023, 0x0146, 0x00ec, 0x0017, 0x0000, 0x0000, 0x0029, 0x0000,
-           0x0181, 0x0000, 0x0000, 0x00a0, 0x0000, 0x015e, 0x0043, 0x0000,
-           0x00f8, 0x0037, 0x0000, 0x0110, 0x0000, 0x0147, 0x0000, 0x009f,
-           0x006f, 0x0000, 0x0140, 0x008c, 0x0000, 0x0169, 0x0000, 0x0061,
-           0x005c, 0x0000, 0x0185, 0x0000, 0x0000, 0x0000, 0x001e, 0x0000,
-           0x0000, 0x0042, 0x0111, 0x0181, 0x0000, 0x006e, 0x0000, 0x0000,
-           0x0058, 0x0041, 0x0000, 0x0000, 0x0000, 0x0035, 0x0048, 0x00d9,
-           0x0000, 0x0000, 0x0000, 0x0166, 0x0033, 0x0000, 0x00f1, 0x0022,
-           0x00eb, 0x0110, 0x0000, 0x0000, 0x00ad, 0x0113, 0x015d, 0x0000,
-           0x012e, 0x0000, 0x0000, 0x0000, 0x0136, 0x0000, 0x0189, 0x0000,
-           0x0000, 0x00ce, 0x015a, 0x000b, 0x006f, 0x0000, 0x00a0, 0x0000,
-           0x0000, 0x0112, 0x017a, 0x0000, 0x0000, 0x0040, 0x0138, 0x008b,
-           0x007e, 0x0187, 0x0140, 0x00c2, 0x0000, 0x0061, 0x0000, 0x0155,
-           0x0000, 0x0000, 0x0117, 0x0000, 0x00c5, 0x0000, 0x0000, 0x00a0,
-           0x0000, 0x00e1, 0x0000, 0x0000, 0x0128, 0x0000, 0x0000, 0x0000,
-           0x0188, 0x0000, 0x005f, 0x0000, 0x0133, 0x0044, 0x0000, 0x0000,
-           0x0000, 0x0077, 0x0123, 0x0000, 0x010a, 0x005e, 0x0011, 0x00e2,
-           0x0000, 0x004c, 0x0000, 0x004d, 0x0000, 0x0000, 0x0000, 0x0088,
-           0x007a, 0x00fa, 0x0000, 0x004e, 0x0146, 0x0000, 0x006e, 0x0000,
-           0x0000, 0x0000, 0x009a, 0x0000, 0x007b, 0x0000, 0x00ee, 0x0086,
-           0x0000, 0x0000, 0x00ee, 0x0037, 0x0169, 0x0000, 0x0000, 0x00b5,
-           0x0000, 0x0164, 0x0000, 0x00d0, 0x005d, 0x0000, 0x0139, 0x0078,
-           0x00c4, 0x0000, 0x0127, 0x0062, 0x0124, 0x0000, 0x0000, 0x0000,
-           0x0000, 0x0000, 0x0000, 0x009e, 0x00cc, 0x0000, 0x00f4, 0x0007,
-           0x0158, 0x0051, 0x0000, 0x0000, 0x0168, 0x0000, 0x00fe, 0x0009,
-           0x0141, 0x0000, 0x0154, 0x00ba, 0x0000, 0x00af, 0x016e, 0x0000,
-           0x00b0, 0x00ed, 0x0000, 0x0000, 0x0000, 0x012a, 0x0000, 0x0000,
-           0x0077, 0x0169, 0x0028, 0x0000, 0x0000, 0x0180, 0x0000, 0x013f,
-           0x0000, 0x017e, 0x0000, 0x0000, 0x0000, 0x0024, 0x0000, 0x0000,
-           0x0118, 0x0000, 0x0000, 0x0098, 0x0000, 0x016b, 0x0000, 0x0000,
-           0x0000, 0x0000, 0x0122, 0x0000, 0x0000, 0x0000, 0x0014, 0x0000,
-           0x0000, 0x0000, 0x0000, 0x002f, 0x016d, 0x00d3, 0x017e, 0x0000,
-           0x0000, 0x0052, 0x0172, 0x014b, 0x0141, 0x0000, 0x0000, 0x00c8,
-           0x0000, 0x0000, 0x0128, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-           0x0000, 0x0000, 0x0000, 0x00b0, 0x0057, 0x0000, 0x0000, 0x0000,
-           0x0000, 0x0033, 0x0000, 0x0000, 0x0000, 0x00af, 0x00d4, 0x0000,
-           0x0000, 0x0000, 0x014a, 0x0038, 0x0000, 0x0000, 0x0000, 0x0000,
-           0x0000, 0x0137, 0x0000, 0x0000, 0x0018, 0x0000, 0x0004, 0x014d,
-           0x0020, 0x001c, 0x0000, 0x0000, 0x0000, 0x0160, 0x00f0, 0x013e,
-           0x0000, 0x0000, 0x0000, 0x00ca, 0x002a, 0x0000, 0x0000, 0x014b,
-           0x0047, 0x0000, 0x0000, 0x0122, 0x00bc, 0x002a, 0x0000, 0x006b,
-           0x0000, 0x0000, 0x0000, 0x0000, 0x0099, 0x00f0, 0x0000, 0x0000,
-           0x0000, 0x0000, 0x0027, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-           0x0000, 0x0000, 0x0070, 0x0000, 0x0000, 0x0000, 0x000f, 0x0000,
-           0x0009, 0x0061, 0x003f, 0x0135, 0x0000, 0x0123, 0x0181, 0x0000,
-           0x0000, 0x0000, 0x0000, 0x0000, 0x0115, 0x0059, 0x00a4, 0x0010,
-           0x0000, 0x0000, 0x0000, 0x0156, 0x0014, 0x0000, 0x0000, 0x0000,
-           0x0040, 0x00e5, 0x0000, 0x0002, 0x0000, 0x0000, 0x0000, 0x0000,
-           0x0003, 0x010b, 0x0046, 0x012f, 0x0000, 0x0000, 0x0000, 0x0000,
-           0x004b, 0x0000, 0x002b, 0x0000, 0x0000, 0x0139, 0x00e8, 0x0000,
-           0x0154, 0x0000, 0x0000, 0x0000, 0x0000, 0x005a, 0x0000, 0x00e2,
-           0x0022, 0x00bd, 0x00a3, 0x00cb, 0x0144, 0x0143, 0x00f6, 0x0000,
-           0x0026, 0x012b, 0x0000, 0x0053, 0x0000, 0x0000, 0x0000, 0x0000,
-           0x0000, 0x0000, 0x0000, 0x0000, 0x0012, 0x0172, 0x0000, 0x0000,
-           0x0000, 0x0000, 0x0000, 0x00b4, 0x0136,
-       };
-       uint32_t h[3];
-
-       mi_vector_hash(key, keylen, 0x9090e0f1U, h);
-       return (g[h[0] % 789] + g[h[1] % 789]) % 394;
-}
index eab4f49cd8affe815c1b87735b3c7b74698fc225..eea345f688e69e3a12034613db14cf88c383545f 100644 (file)
@@ -1,6 +1,6 @@
-.\"    $NetBSD: terminfo.3,v 1.4 2010/02/04 09:12:56 wiz Exp $
+.\"    $NetBSD: terminfo.3,v 1.8 2011/10/04 11:01:14 roy Exp $
 .\"
-.\" Copyright (c) 2009 The NetBSD Foundation, Inc.
+.\" Copyright (c) 2009, 2011 The NetBSD Foundation, Inc.
 .\" All rights reserved.
 .\"
 .\" This code is derived from software contributed to The NetBSD Foundation
 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 .\" POSSIBILITY OF SUCH DAMAGE.
 .\"
-.Dd December 7, 2009
+.Dd October 4, 2011
 .Dt TERMINFO 3
 .Os
 .Sh NAME
 .Nm setupterm ,
 .Nm set_curterm ,
 .Nm del_curterm ,
+.Nm termname ,
+.Nm longname ,
 .Nm tigetflag ,
 .Nm tigetnum ,
 .Nm tigetstr ,
 .Ft int
 .Fn setupterm "const char *name" "int fildes" "int *errret"
 .Ft TERMINAL *
-.Fn set_curterm "TERMINAL *term"
+.Fn set_curterm "TERMINAL *nterm"
 .Ft int
-.Fn del_curterm "TERMINAL *term"
+.Fn del_curterm "TERMINAL *oterm"
+.Ft char *
+.Fn termname "void"
+.Ft char *
+.Fn longname "void"
 .Ft int
 .Fn tigetnum "const char *id"
 .Ft int
 .Ft const char *
 .Fn ti_getstr "const TERMINAL *" "const char *id"
 .Ft char *
-.Fn t_parm "const TERMINAL *" "const char *cm" "long p1" "long p2" "long p3" "long p4" "long p5" "long p6" "long p7" "long p8" "long p9"
+.Fn tiparm "const char *cm" "..."
 .Ft char *
-.Fn t_parm "const char *cm" "..."
-.Ft char *
-.Fn t_vparm "TERMINAL *" "const char *cm" "..."
+.Fn ti_tiparm "TERMINAL *" "const char *cm" "..."
 .Ft int
 .Fn ti_puts "const TERMINAL *term" "const char *str" "int affcnt" "int (*outc)(int, void *)"
 .Ft int
@@ -144,6 +148,15 @@ function frees space pointed to by
 .Va oterm .
 .Pp
 The
+.Fn termname
+function returns the name of
+.Va cur_term .
+The
+.Fn longname
+function returns the description of
+.Va cur_term .
+.Pp
+The
 .Fn tigetflag
 function gets the boolean value of capability
 .Va id ,
@@ -198,9 +211,9 @@ The output from
 always goes to stdout.
 .Ss NetBSD Extensions To Terminfo
 The
-.Fn vtparm
+.Fn tiparm
 function allows variadic parameters instead of 9 fixed longs.
-Numeric parameters must be longs.
+Numeric parameters must be integers (int) instead of longs.
 String parameters can be used even if the platform cannot fit a
 .Vt char *
 into a
index 8a9bbc4d3465fa0a6c28e34b2b4151170e540e7e..6ae22f2d710eefae60b8f9ca70aa4820f90eb5af 100644 (file)
@@ -1,6 +1,6 @@
-.\"    $NetBSD: terminfo.5.in,v 1.14 2010/02/26 07:03:49 wiz Exp $
+.\"    $NetBSD: terminfo.5.in,v 1.17 2012/06/05 17:22:01 wiz Exp $
 .\"
-.\" Copyright (c) 2009, 2010 The NetBSD Foundation, Inc.
+.\" Copyright (c) 2009, 2010, 2011 The NetBSD Foundation, Inc.
 .\" All rights reserved.
 .\"
 .\" This code is derived from software contributed to The NetBSD Foundation
@@ -27,7 +27,7 @@
 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 .\" POSSIBILITY OF SUCH DAMAGE.
 .\"
-.Dd February 26, 2010
+.Dd June 6, 2012
 .Dt TERMINFO 5
 .Os
 .Sh NAME
@@ -195,10 +195,10 @@ hts=\eEH, ht=^I,
 .Ed
 .Ss Fetching Compiled Descriptions
 This implementation uses hashed databases managed by
-.Xr ndbm 3
+.Xr cdb 5
 instead of directories.
 To maintain compatability with other implementations,
-.Pa .db
+.Pa .cdb
 is appended to each file checked.
 .Pp
 If the environment variable
@@ -237,12 +237,12 @@ If a matching description is not found then a small embedded database is
 searched, which currently holds descriptions for ansi, dumb, vt100, vt220,
 wsvt25, and xterm.
 .Sh FILES
-.Bl -tag -width /usr/share/misc/terminfo.db -compact
-.It Pa $HOME/.terminfo.db
+.Bl -tag -width /usr/share/misc/terminfo.cdb -compact
+.It Pa $HOME/.terminfo.cdb
 Database of terminal descriptions for personal use.
 .It Pa /usr/share/misc/terminfo
 File containing terminal descriptions.
-.It Pa /usr/share/misc/terminfo.db
+.It Pa /usr/share/misc/terminfo.cdb
 Database of terminal descriptions.
 .El
 .Sh SEE ALSO
@@ -250,7 +250,7 @@ Database of terminal descriptions.
 .Xr tic 1 ,
 .Xr tput 1 ,
 .Xr curses 3 ,
-.Xr ndbm 3
+.Xr cdb 5
 .Sh STANDARDS
 .Nm
 complies with the
@@ -261,7 +261,3 @@ Extensions to the standard are noted in
 .Xr tic 1 .
 .Sh AUTHORS
 .An Roy Marples Aq roy@NetBSD.org
-.Sh BUGS
-The
-.Ev TERMCAP
-capabilities %\*[Gt], %B and %D are not converted into terminfo capabilities.
index 92a2d698dd982d534aca05716585537bdc24054f..8e48cafc9972500211d773542752a5415f3aa562 100644 (file)
@@ -1,7 +1,7 @@
-/* $NetBSD: tparm.c,v 1.2 2010/09/22 06:10:51 roy Exp $ */
+/* $NetBSD: tparm.c,v 1.8 2012/06/02 19:10:33 roy Exp $ */
 
 /*
- * Copyright (c) 2009 The NetBSD Foundation, Inc.
+ * Copyright (c) 2009, 2011 The NetBSD Foundation, Inc.
  *
  * This code is derived from software contributed to The NetBSD Foundation
  * by Roy Marples.
@@ -28,7 +28,8 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: tparm.c,v 1.2 2010/09/22 06:10:51 roy Exp $");
+__RCSID("$NetBSD: tparm.c,v 1.8 2012/06/02 19:10:33 roy Exp $");
+#include <sys/param.h>
 
 #include <assert.h>
 #include <ctype.h>
@@ -43,18 +44,18 @@ __RCSID("$NetBSD: tparm.c,v 1.2 2010/09/22 06:10:51 roy Exp $");
 static TERMINAL *dumbterm; /* For non thread safe functions */
 
 typedef struct {
-       long nums[20];
+       int nums[20];
        char *strings[20];
        size_t offset;
 } TPSTACK;
 
 typedef struct {
-       long num;
+       int num;
        char *string;
 } TPVAR;
 
 static int
-push(long num, char *string, TPSTACK *stack)
+push(int num, char *string, TPSTACK *stack)
 {
        if (stack->offset > sizeof(stack->nums)) {
                errno = E2BIG;
@@ -67,9 +68,13 @@ push(long num, char *string, TPSTACK *stack)
 }
 
 static int
-pop(long *num, char **string, TPSTACK *stack)
+pop(int *num, char **string, TPSTACK *stack)
 {
        if (stack->offset == 0) {
+               if (num)
+                       *num = 0;
+               if (string)
+                       *string = NULL;
                errno = E2BIG;
                return -1;
        }
@@ -87,10 +92,10 @@ checkbuf(TERMINAL *term, size_t len)
        char *buf;
        
        if (term->_bufpos + len >= term->_buflen) {
-               len = term->_buflen + BUFSIZ;
+               len = term->_buflen + MAX(len, BUFSIZ);
                buf = realloc(term->_buf, len);
                if (buf == NULL)
-                       return 0;
+                       return NULL;
                term->_buf = buf;
                term->_buflen = len;
        }
@@ -110,7 +115,7 @@ ochar(TERMINAL *term, int c)
 }
 
 static size_t
-onum(TERMINAL *term, const char *fmt, long num, int len)
+onum(TERMINAL *term, const char *fmt, int num, int len)
 {
        size_t l;
 
@@ -125,12 +130,12 @@ onum(TERMINAL *term, const char *fmt, long num, int len)
 }
 
 static char *
-_ti_vtparm(TERMINAL *term, const char *str, va_list parms)
+_ti_tiparm(TERMINAL *term, const char *str, va_list parms)
 {
        const char *sp;
        char c, fmt[64], *fp, *ostr;
-       long val, val2;
-       long dnums[26]; /* dynamic variables a-z, not preserved */
+       int val, val2;
+       int dnums[26]; /* dynamic variables a-z, not preserved */
        size_t l, max;
        TPSTACK stack;
        TPVAR params[9];
@@ -146,6 +151,7 @@ _ti_vtparm(TERMINAL *term, const char *str, va_list parms)
          still work with non thread safe functions (which sadly are still the
          norm and standard).
        */
+
        if (term == NULL) {
                if (dumbterm == NULL) {
                        dumbterm = malloc(sizeof(*dumbterm));
@@ -167,7 +173,7 @@ _ti_vtparm(TERMINAL *term, const char *str, va_list parms)
 
        /*
          Make a first pass through the string so we can work out
-         which parameters are longs and which are char *.
+         which parameters are ints and which are char *.
          Basically we only use char * if %p[1-9] is followed by %l or %s.
        */
        memset(&piss, 0, sizeof(piss));
@@ -184,7 +190,7 @@ _ti_vtparm(TERMINAL *term, const char *str, va_list parms)
                c = *sp++;
                if (c < '1' || c > '9') {
                        errno = EINVAL;
-                       return NULL;
+                       continue;
                }
                l = c - '0';
                if (l > max)
@@ -204,7 +210,7 @@ _ti_vtparm(TERMINAL *term, const char *str, va_list parms)
        memset(&params, 0, sizeof(params));
        for (l = 0; l < max; l++) {
                if (piss[l] == 0)
-                       params[l].num = va_arg(parms, long);
+                       params[l].num = va_arg(parms, int);
                else
                        params[l].string = va_arg(parms, char *);
        }
@@ -288,14 +294,12 @@ _ti_vtparm(TERMINAL *term, const char *str, va_list parms)
                /* Handle commands */
                switch (c) {
                case 'c':
-                       if (pop(&val, NULL, &stack))
-                           return NULL;
+                       pop(&val, NULL, &stack);
                        if (ochar(term, (unsigned char)val) == 0)
                                return NULL;
                        break;
                case 's':
-                       if (pop(NULL, &ostr, &stack))
-                               return NULL;
+                       pop(NULL, &ostr, &stack);
                        if (ostr != NULL) {
                                l = strlen(ostr);
                                if (l < (size_t)olen)
@@ -308,44 +312,37 @@ _ti_vtparm(TERMINAL *term, const char *str, va_list parms)
                        }
                        break;
                case 'l':
-                       if (pop(NULL, &ostr, &stack))
-                               return NULL;
+                       pop(NULL, &ostr, &stack);
                        if (ostr == NULL)
                                l = 0;
                        else
                                l = strlen(ostr);
-                       if (onum(term, "%d", (long)l, 0) == 0)
+                       if (onum(term, "%d", (int)l, 0) == 0)
                                return NULL;
                        break;
                case 'd': /* FALLTHROUGH */
                case 'o': /* FALLTHROUGH */
                case 'x': /* FALLTHROUGH */
                case 'X':
-                       if (pop(&val, NULL, &stack))
-                               return NULL;
+                       pop(&val, NULL, &stack);
                        if (onum(term, fmt, val, olen) == 0)
                                return NULL;
                        break;
                case 'p':
-                       if (*str < '1' || *str > '9') {
-                               errno = EINVAL;
-                               return NULL;
-                       }
+                       if (*str < '1' || *str > '9')
+                               break;
                        l = *str++ - '1';
                        if (push(params[l].num, params[l].string, &stack))
                                return NULL;
                        break;
                case 'P':
-                       if (pop(&val, NULL, &stack))
-                               return NULL;
-                       str++;
+                       pop(&val, NULL, &stack);
                        if (*str >= 'a' && *str <= 'z')
                                dnums[*str - 'a'] = val;
                        else if (*str >= 'A' && *str <= 'Z')
                                term->_snums[*str - 'A'] = val;
                        break;
                case 'g':
-                       str++;
                        if (*str >= 'a' && *str <= 'z') {
                                if (push(dnums[*str - 'a'], NULL, &stack))
                                        return NULL;
@@ -362,7 +359,7 @@ _ti_vtparm(TERMINAL *term, const char *str, va_list parms)
                                params[1].num++;
                        break;
                case '\'':
-                       if (push((long)(unsigned char)*str++, NULL, &stack))
+                       if (push((int)(unsigned char)*str++, NULL, &stack))
                                return NULL;
                        while (*str != '\0' && *str != '\'')
                                str++;
@@ -371,7 +368,7 @@ _ti_vtparm(TERMINAL *term, const char *str, va_list parms)
                        break;
                case '{':
                        val = 0;
-                       for (str++; isdigit((unsigned char)*str);  str++)
+                       for (; isdigit((unsigned char)*str);  str++)
                                val = (val * 10) + (*str - '0');
                        if (push(val, NULL, &stack))
                                return NULL;
@@ -393,9 +390,8 @@ _ti_vtparm(TERMINAL *term, const char *str, va_list parms)
                case '=': /* FALLTHROUGH */
                case '<': /* FALLTHROUGH */
                case '>':
-                       if (pop(&val, NULL, &stack) ||
-                           pop(&val2, NULL, &stack))
-                               return NULL;
+                       pop(&val, NULL, &stack);
+                       pop(&val2, NULL, &stack);
                        switch (c) {
                        case '+':
                                val = val + val2;
@@ -442,8 +438,7 @@ _ti_vtparm(TERMINAL *term, const char *str, va_list parms)
                        break;
                case '!':
                case '~':
-                       if (pop(&val, NULL, &stack))
-                               return NULL;
+                       pop(&val, NULL, &stack);
                        switch (*str) {
                        case '!':
                                val = !val;
@@ -458,8 +453,7 @@ _ti_vtparm(TERMINAL *term, const char *str, va_list parms)
                case '?': /* if */
                        break;
                case 't': /* then */
-                       if (pop(&val, NULL, &stack))
-                               return NULL;
+                       pop(&val, NULL, &stack);
                        if (val != 0) {
                                l = 0;
                                for (; *str != '\0'; str++) {
@@ -503,7 +497,7 @@ _ti_vtparm(TERMINAL *term, const char *str, va_list parms)
 }
 
 char *
-t_vparm(TERMINAL *term, const char *str, ...)
+ti_tiparm(TERMINAL *term, const char *str, ...)
 {
        va_list va;
        char *ret;
@@ -512,13 +506,13 @@ t_vparm(TERMINAL *term, const char *str, ...)
        _DIAGASSERT(str != NULL);
 
        va_start(va, str);
-       ret = _ti_vtparm(term, str, va);
+       ret = _ti_tiparm(term, str, va);
        va_end(va);
        return ret;
 }
 
 char *
-vtparm(const char *str, ...)
+tiparm(const char *str, ...)
 {
        va_list va;
        char *ret;
@@ -526,28 +520,18 @@ vtparm(const char *str, ...)
        _DIAGASSERT(str != NULL);
 
        va_start(va, str);
-        ret = _ti_vtparm(NULL, str, va);
+        ret = _ti_tiparm(NULL, str, va);
        va_end(va);
        return ret;
 }
 
-char *
-t_parm(TERMINAL *term, const char *str,
-    long p1, long p2, long p3, long p4, long p5,
-    long p6, long p7, long p8, long p9)
-{
-       
-       _DIAGASSERT(term != NULL);
-       _DIAGASSERT(str != NULL);
-       return t_vparm(term, str, p1, p2, p3, p4, p5, p6, p7, p8, p9);
-}
-
 char *
 tparm(const char *str,
-    long p1, long p2, long p3, long p4, long p5,
-    long p6, long p7, long p8, long p9)
+    long lp1, long lp2, long lp3, long lp4, long lp5,
+    long lp6, long lp7, long lp8, long lp9)
 {
-       
-       _DIAGASSERT(str != NULL);
-       return t_vparm(NULL, str, p1, p2, p3, p4, p5, p6, p7, p8, p9);
+       int p1 = lp1, p2 = lp2, p3 = lp3, p4 = lp4, p5 = lp5;
+       int p6 = lp6, p7 = lp7, p8 = lp8, p9 = lp9;
+
+       return tiparm(str, p1, p2, p3, p4, p5, p6, p7, p8, p9);
 }
index a87a49f51dc646c32019304adf1e7c3bca99096c..f9458d2891f28b323545285ec25603bfc1b219d9 100644 (file)
@@ -97,6 +97,7 @@
 2012/10/17 12:00:00,usr.bin/genassym
 2012/02/10 16:16:12,usr.bin/su
 2011/12/25 06:09:09,sys/arch/i386/stand
+2012/10/17 12:00:00,share/terminfo
 2012/02/10 16:16:12,share/zoneinfo
 2012/02/10 16:16:12,share/misc
 2011/05/26 00:00:00,external/public-domain/xz
 2011/01/21 23:36:49,lib/libc
 2011/01/12 23:03:56,lib/libm
 2009/05/01 00:28:17,lib/libcrypt
-2010/10/12 12:57:51,lib/libterminfo
-2011/01/06 11:29:40,lib/libcurses
+2012/10/17 12:00:00,lib/libterminfo
+2012/10/17 12:00:00,lib/libcurses
 2010/12/22 09:12:28,lib/libutil
 2009/05/13 02:50:31,common/lib/libutil
-2011/01/21 23:36:49,include
 2008/07/20 00:52:40,bin/mkdir
 2011/08/29 14:48:46,bin/rm
 2011/08/29 14:49:38,bin/rmdir
index 59e5773b71f1b5ee286926fb2e03cfacc8aa992a..83edbc8fb36e04aac07a1ba60da5fc1cefc6ab13 100644 (file)
@@ -1,18 +1,20 @@
-#      $NetBSD: Makefile,v 1.2 2010/02/05 16:34:04 roy Exp $
+#      $NetBSD: Makefile,v 1.3 2012/06/03 23:19:11 joerg Exp $
 #      from: @(#)Makefile      8.1 (Berkeley) 6/8/93
 
-
-CLEANFILES= terminfo.db
-realall: terminfo.db
-FILES=terminfo.db terminfo
+CLEANFILES= terminfo.cdb
+realall: terminfo.cdb
+FILES=terminfo.cdb terminfo
 .if defined(__MINIX)
 FILESDIR=/usr/share/terminfo
 .else
 FILESDIR=${BINDIR}/misc
 .endif
 
-terminfo.db: terminfo
+terminfo.cdb: terminfo ${TOOL_TIC}
        ${_MKTARGET_CREATE}
-       ${TOOL_TIC} -ax -o "${.OBJDIR}/terminfo" "${.CURDIR}/terminfo" 
+       ${TOOL_TIC} -ax -o ${.TARGET} "${.CURDIR}/terminfo" 
+#LSC FIXME: Hack, on some platform TOOL_TIC automatically add 
+#           .db to the filename...
+       test -e ${.TARGET}.db && mv ${.TARGET}.db ${.TARGET}
 
 .include <bsd.prog.mk>
index 980e00d33595026d1efcb5394b06f1cbaa3f3e1e..264c9b9d0d888fabb3dd6b9715db52b24a282ba6 100644 (file)
@@ -6,8 +6,8 @@
 # Report bugs and new terminal descriptions to
 #      bug-ncurses@gnu.org
 #
-#      $Revision: 1.1 $
-#      $Date: 2010/02/03 15:16:32 $
+#      $Revision: 1.5 $
+#      $Date: 2012/06/01 14:47:06 $
 #
 # The original header is preserved below for reference.  It is noted that there
 # is a "newer" version which differs in some cosmetic details (but actually
@@ -340,7 +340,7 @@ ansi+local,
        cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
        cuu=\E[%p1%dA, use=ansi+local1,
 ansi+tabs,
-       cbt=\E[Z, ht=^I, hts=\EH, tbc=\E[2g,
+       cbt=\E[Z, ht=^I, hts=\EH, tbc=\E[3g,
 ansi+inittabs,
        it#8, use=ansi+tabs,
 ansi+erase,
@@ -452,8 +452,9 @@ ecma+sgr|attribute capabilities for true ECMA-48 terminals,
 # For more detail on this rather pathetic standard, see the comments
 # near the end of this file.
 ibcs2|Intel Binary Compatibility Standard prescriptions,
-       cbt=\E[Z, clear=\Ec, cub=\E[%p1%dD, cud=\E[%p1%dB,
-       cuf=\E[%p1%dC, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
+       cbt=\E[Z, clear=\Ec, cub=\E[%p1%dD, cub1=\E[1D,
+       cud=\E[%p1%dB, cud1=\E[1B, cuf=\E[%p1%dC, cuf1=\E[1C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[1A,
        dch=\E[%p1%dP, dispc=\E=%p1%dg, ech=\E[%p1%dX,
        hpa=\E[%i%p1%dG, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL,
        indn=\E[%p1%dS, rc=\E7, rin=\E[%p1%dT, rmam=\E[?7l, sc=\E7,
@@ -545,7 +546,7 @@ pcansi-m|pcansi-mono|ibm-pc terminal programs claiming to be ansi (mono mode),
        cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
        dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
        hts=\EH, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D, kcud1=\E[B,
-       kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, tbc=\E[2g,
+       kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, tbc=\E[3g,
        use=klone+sgr-dumb,
 pcansi-25-m|pcansi25m|ibm-pc terminal programs with 25 lines (mono mode),
        lines#25, use=pcansi-m,
@@ -576,7 +577,7 @@ ansi-m|ansi-mono|ANSI X3.64-1979 terminal with ANSI.SYS compatible attributes,
        kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
        kich1=\E[L, mc4=\E[4i, mc5=\E[5i, nel=\r\E[S,
        rep=%p1%c\E[%p2%{1}%-%db, rin=\E[%p1%dT, s0ds=\E(B,
-       s1ds=\E)B, s2ds=\E*B, s3ds=\E+B, tbc=\E[2g,
+       s1ds=\E)B, s2ds=\E*B, s3ds=\E+B, tbc=\E[3g,
        vpa=\E[%i%p1%dd, use=pcansi-m,
 
 ansi+enq|ncurses extension for ANSI ENQ,
@@ -617,11 +618,45 @@ ansi.sys-old|ANSI.SYS under PC-DOS 2.1,
        clear=\E[2J, cub1=^H, cud1=\E[B, cuf1=\E[C,
        cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[k, home=\E[H,
        is2=\E[m\E[?7h, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
-       khome=^^, pfkey=\E[0;%p1%{58}%+%d;%p2"%s", rc=\E[u,
+       khome=^^, pfkey=\E[0;%p1%{58}%+%d;%p2"%s"p, rc=\E[u,
        rmam=\E[?7l, sc=\E[s, smam=\E[?7h, u6=\E[%i%d;%dR,
        u7=\E[6n, use=klone+color, use=klone+sgr8,
+
+# Keypad:      Home=\0G        Up=\0H  PrPag=\0I
+#              ka1,kh          kcuu1           kpp,ka3
+#
+#              Left=\0K        5=\0L           Right=\0M
+#              kcub1           kb2             kcuf1
+#
+#              End=\0O         Down=\0P        NxPag=\0Q
+#              kc1,kend        kcud1           kc3,knp
+#
+#              Ins=\0R         Del=\0S
+#              kich1           kdch1
+#
+# On keyboard with 12 function keys,
+#      shifted f-keys: F13-F24
+#      control f-keys: F25-F36
+#      alt f-keys:     F37-F48
+# The shift/control/alt keys do not modify each other, but alt overrides both,
+# and control overrides shift.
+#
+# <pfkey> capability for F1-F48 -TD
 ansi.sys|ANSI.SYS 3.1 and later versions,
-       el=\E[K, use=ansi.sys-old,
+       el=\E[K, ka1=\0G, ka3=\0I, kb2=\0L, kbs=^H, kc1=\0O, kc3=\0Q,
+       kcbt=\0^O, kcub1=\0K, kcud1=\0P, kcuf1=\0M, kcuu1=\0H,
+       kdch1=\0S, kend=\0O, kf1=\0;, kf10=\0D, kf11=\0\205,
+       kf12=\0\206, kf13=\0T, kf14=\0U, kf15=\0V, kf16=\0W,
+       kf17=\0X, kf18=\0Y, kf19=\0Z, kf2=\0<, kf20=\0[, kf21=\0\\,
+       kf22=\0], kf23=\0\207, kf24=\0\210, kf25=\0\^, kf26=\0_,
+       kf27=\0`, kf28=\0a, kf29=\0b, kf3=\0=, kf30=\0c, kf31=\0d,
+       kf32=\0e, kf33=\0f, kf34=\0g, kf35=\0\211, kf36=\0\212,
+       kf37=\0h, kf38=\0i, kf39=\0j, kf4=\0>, kf40=\0k, kf41=\0l,
+       kf42=\0m, kf43=\0n, kf44=\0o, kf45=\0p, kf46=\0q,
+       kf47=\0\213, kf48=\0\214, kf5=\0?, kf6=\0@, kf7=\0A, kf8=\0B,
+       kf9=\0C, khome=\0G, kich1=\0R, knp=\0Q, kpp=\0I,
+       pfkey=\E[0;%?%p1%{11}%<%t%'\:'%e%?%p1%{13}%<%t%'z'%e%?%p1%{23}%<%t%'G'%e%?%p1%{25}%<%t%'p'%e%?%p1%'#'%<%t%'E'%e%?%p1%'%'%<%t%'f'%e%?%p1%'/'%<%t%'C'%e%{92}%;%;%;%;%;%;%;%p1%+%d;%p2"%s"p,
+       use=ansi.sys-old,
 
 #
 # Define IBM PC keypad keys for vi as per MS-Kermit while using ANSI.SYS.
@@ -657,6 +692,149 @@ nansi.sysk|nansisysk|PC-DOS Public Domain NANSI.SYS with keypad redefined for vi
 #### ANSI console types
 #
 
+#############################################################################
+#
+# Atari ST terminals.
+# From Guido Flohr <gufl0000@stud.uni-sb.de>.
+#
+tw52|tw52-color|Toswin window manager with color,
+       bce,
+       colors#16, pairs#256,
+       oc=\Eb?\Ec0, op=\Eb?\Ec0,
+       setab=\Ec%?%p1%{0}%=%t?%e%p1%{7}%=%t0%e%p1%{15}%=%t7%e%p1%{48}%+%c,
+       setaf=\Eb%?%p1%{0}%=%t?%e%p1%{7}%=%t0%e%p1%{15}%=%t7%e%p1%{48}%+%c,
+       setb=\Ec%?%p1%{0}%=%t?%e%p1%{7}%=%t0%e%p1%{15}%=%t7%e%p1%{48}%+%c,
+       setf=\Eb%?%p1%{0}%=%t?%e%p1%{7}%=%t0%e%p1%{15}%=%t7%e%p1%{48}%+%c,
+       use=tw52-m,
+tw52-m|Toswin window manager monochrome,
+       ul,
+       ma#999,
+       bold=\Eya, dch1=\Ea, dim=\EyB,
+       is2=\Ev\Eq\Ez_\Ee\Ei\Eb?\Ec0, rev=\EyP, rmso=\EzQ,
+       rmul=\EzH, rs2=\Ev\Eq\Ez_\Ee\Ei\Eb?\Ec0, sgr0=\Ez_,
+       smso=\EyQ, smul=\EyH, use=at-m,
+tt52|Atari TT medium and high resolution,
+       lines#30, use=at-color,
+st52-color|at-color|atari-color|atari_st-color|Atari ST with color,
+       bce,
+       colors#16, pairs#256,
+       is2=\Ev\Eq\Ee\Eb1\Ec0, rs2=\Ev\Eq\Ee\Eb1\Ec0,
+       setab=\Ec%?%p1%{0}%=%t1%e%p1%{1}%=%t2%e%p1%{2}%=%t3%e%p1%{3}%=%t>%e%p1%{4}%=%t4%e%p1%{5}%=%t7%e%p1%{6}%=%t5%e%p1%{7}%=%t0%e%p1%{8}%=%t8%e%p1%{9}%=%t9%e%p1%{10}%=%t\:%e%p1%{11}%=%t;%e%p1%{12}%=%t<%e%p1%{13}%=%t=%e%p1%{14}%=%t6%e?,
+       setaf=\Eb%?%p1%{0}%=%t1%e%p1%{1}%=%t2%e%p1%{2}%=%t3%e%p1%{3}%=%t>%e%p1%{4}%=%t4%e%p1%{5}%=%t7%e%p1%{6}%=%t5%e%p1%{7}%=%t0%e%p1%{8}%=%t8%e%p1%{9}%=%t9%e%p1%{10}%=%t\:%e%p1%{11}%=%t;%e%p1%{12}%=%t<%e%p1%{13}%=%t=%e%p1%{14}%=%t6%e?,
+       setb=\Ec%?%p1%{0}%=%t1%e%p1%{1}%=%t2%e%p1%{2}%=%t3%e%p1%{3}%=%t>%e%p1%{4}%=%t4%e%p1%{5}%=%t7%e%p1%{6}%=%t5%e%p1%{7}%=%t0%e%p1%{8}%=%t8%e%p1%{9}%=%t9%e%p1%{10}%=%t\:%e%p1%{11}%=%t;%e%p1%{12}%=%t<%e%p1%{13}%=%t=%e%p1%{14}%=%t6%e?,
+       setf=\Eb%?%p1%{0}%=%t1%e%p1%{1}%=%t2%e%p1%{2}%=%t3%e%p1%{3}%=%t>%e%p1%{4}%=%t4%e%p1%{5}%=%t7%e%p1%{6}%=%t5%e%p1%{7}%=%t0%e%p1%{8}%=%t8%e%p1%{9}%=%t9%e%p1%{10}%=%t\:%e%p1%{11}%=%t;%e%p1%{12}%=%t<%e%p1%{13}%=%t=%e%p1%{14}%=%t6%e?,
+       use=st52,
+st52|st52-m|at|at-m|atari|atari-m|atari_st|atarist-m|Atari ST,
+       am, eo, mir, npc,
+       cols#80, it#8, lines#24,
+       bel=^G, civis=\Ef, clear=\EE, cnorm=\Ee, cr=^M, cub1=\ED,
+       cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
+       cuu1=\EA, dl1=\EM, ed=\EJ, el=\EK, el1=\Eo, home=\EH, ht=^I,
+       il1=\EL, ind=^J, is2=\Ev\Eq\Ee, kLFT=\Ed, kRIT=\Ec, kbs=^H,
+       kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA, kdch1=\177,
+       kf1=\EP, kf10=\EY, kf11=\Ep, kf12=\Eq, kf13=\Er, kf14=\Es,
+       kf15=\Et, kf16=\Eu, kf17=\Ev, kf18=\Ew, kf19=\Ex, kf2=\EQ,
+       kf20=\Ey, kf3=\ER, kf4=\ES, kf5=\ET, kf6=\EU, kf7=\EV, kf8=\EW,
+       kf9=\EX, khlp=\EH, khome=\EE, kich1=\EI, knp=\Eb, kpp=\Ea,
+       kund=\EK, nel=^M^J, rc=\Ek, rev=\Ep, ri=\EI, rmso=\Eq,
+       rs2=\Ev\Eq\Ee, sc=\Ej, sgr0=\Eq, smso=\Ep,
+tw100|toswin vt100 window mgr,
+       eo, mir, msgr, xon,
+       colors#8, cols#80, it#8, lines#24, pairs#64, vt#3,
+       acsc=++\,\,--..00II``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, civis=\Ef,
+       clear=\E[2J\E[H, cnorm=\Ee, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\EB,
+       cuf=\E[%p1%dC, cuf1=\EC, cup=\E[%i%p1%d;%p2%dH,
+       cuu=\E[%p1%dA, cuu1=\EA, dch1=\Ea, dim=\E[2m, dl=\E[%p1%dM,
+       dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, home=\E[H, ht=^I,
+       hts=\EH, ich=\E[%p1%d@, il1=\EL, ind=^J, is2=\E<\E)0, kbs=^H,
+       kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\177,
+       kf1=\EOP, kf10=\EOY, kf11=\Ep, kf12=\Eq, kf13=\Er, kf14=\Es,
+       kf15=\Et, kf16=\Eu, kf17=\Ev, kf18=\Ew, kf19=\Ex, kf2=\EOQ,
+       kf20=\Ey, kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV,
+       kf8=\EOW, kf9=\EOX, khlp=\EH, khome=\E\EE, kich1=\EI,
+       knp=\Eb, kpp=\E\Ea, kund=\EK, ll=\E[24H, nel=\EE,
+       oc=\E[30;47m, op=\E[30;47m, rc=\E8, rev=\E[7m, ri=\EM,
+       rmacs=^O, rmcup=\E[?7h, rmir=\Ei, rmkx=\E[?1l\E>,
+       rmso=\E[m, rmul=\E[m,
+       rs1=\E<\E[20l\E[?3;6;9l\E[r\Eq\E(B\017\E)0\E>,
+       sc=\E7,
+       setb=\E[4%p1%'0'%+%Pa%?%ga%'0'%=%t0%e%ga%'1'%=%t4%e%ga%'2'%=%t2%e%ga%'3'%=%t6%e%ga%'4'%=%t1%e%ga%'5'%=%t5%e%ga%'6'%=%t3%e7%;m,
+       setf=\E[3%p1%'0'%+%Pa%?%ga%'0'%=%t0%e%ga%'1'%=%t4%e%ga%'2'%=%t2%e%ga%'3'%=%t6%e%ga%'4'%=%t1%e%ga%'5'%=%t5%e%ga%'6'%=%t3%e7%;m,
+       sgr0=\E[m, smacs=^N, smcup=\E[?7l, smir=\Eh,
+       smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+# The entries for stv52 and stv52pc probably need a revision.
+stv52|MiNT virtual console,
+       am, msgr,
+       cols#80, it#8, lines#30,
+       bel=^G, blink=\Er, bold=\EyA, civis=\Ef, clear=\EE,
+       cnorm=\E. \Ee, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\E.",
+       dim=\Em, dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, il1=\EL,
+       ind=\n$<2*/>, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+       kcuu1=\EA, kdch1=\177, kf1=\EP, kf10=\EY, kf11=\Ep, kf12=\Eq,
+       kf13=\Er, kf14=\Es, kf15=\Et, kf16=\Eu, kf17=\Ev, kf18=\Ew,
+       kf19=\Ex, kf2=\EQ, kf20=\Ey, kf3=\ER, kf4=\ES, kf5=\ET,
+       kf6=\EU, kf7=\EV, kf8=\EW, kf9=\EX, khlp=\EH, khome=\EE,
+       kich1=\EI, knp=\Eb, kpp=\Ea, kund=\EK, nel=\r\n$<2*/>,
+       op=\Eb@\EcO, rev=\Ep, ri=\EI$<2*/>, rmcup=\Ev\E. \Ee\Ez_,
+       rmso=\Eq, rmul=\EzH, rs1=\Ez_\Eb@\EcA, sgr0=\Ez_,
+       smcup=\Ev\Ee\Ez_, smso=\Ep, smul=\EyH,
+stv52pc|MiNT virtual console with PC charset,
+       am, msgr,
+       cols#80, it#8, lines#30,
+       acsc=+\257\,\256-\^.v0\333I\374`\177a\260f\370g\361h\261j\331k\277l\332m\300n\305o\377p-q\304r-s_t+u+v+w+x\263y\363z\362{\343|\366}\234~\371,
+       bel=^G, blink=\Er, bold=\EyA, civis=\Ef, clear=\EE,
+       cnorm=\E. \Ee, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\E.",
+       dim=\Em, dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, il1=\EL,
+       ind=\n$<2*/>, kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
+       kcuu1=\EA, kdch1=\177, kf1=\EP, kf10=\EY, kf11=\Ep, kf12=\Eq,
+       kf13=\Er, kf14=\Es, kf15=\Et, kf16=\Eu, kf17=\Ev, kf18=\Ew,
+       kf19=\Ex, kf2=\EQ, kf20=\Ey, kf3=\ER, kf4=\ES, kf5=\ET,
+       kf6=\EU, kf7=\EV, kf8=\EW, kf9=\EX, khlp=\EH, khome=\EE,
+       kich1=\EI, knp=\Eb, kpp=\Ea, kund=\EK, nel=\r\n$<2*/>,
+       rev=\Ep, ri=\EI$<2*/>, rmcup=\Ev\E. \Ee\Ez_, rmso=\Eq,
+       rmul=\EzH, rs1=\Ez_\Eb@\EcA, sgr0=\Ez_, smcup=\Ev\Ee\Ez_,
+       smso=\Ep, smul=\EyH,
+
+#### Atari ST
+#
+
+# From: Simson L. Garfinkel <simsong@media-lab.mit.edu>
+atari-old|atari st,
+       OTbs, am,
+       cols#80, it#8, lines#25,
+       clear=\EH\EJ, cub1=\ED, cud1=\EB, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dl1=\EM,
+       ed=\EJ, el=\EK, ht=^I, il1=\EL, kcub1=\ED, kcud1=\EB,
+       kcuf1=\EC, kcuu1=\EA, ri=\EI, rmso=\Eq, sgr0=\Eq, smso=\Ep,
+# UniTerm terminal program for the Atari ST:  49-line VT220 emulation mode
+# From: Paul M. Aoki <aoki@ucbvax.berkeley.edu>
+uniterm|uniterm49|UniTerm VT220 emulator with 49 lines,
+       lines#49,
+       is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;49r\E[49;1H,
+       use=vt220,
+# MiNT VT52 emulation. 80 columns, 25 rows.
+# MiNT is Now TOS, the operating system which comes with all Ataris now
+# (mainly Atari Falcon). This termcap is for the VT52 emulation you get
+# under tcsh/zsh/bash/sh/ksh/ash/csh when you run MiNT in `console' mode
+# From: Per Persson <pp@gnu.ai.mit.edu>, 27 Feb 1996
+st52-old|Atari ST with VT52 emulation,
+       am, km,
+       cols#80, lines#25,
+       bel=^G, civis=\Ef, clear=\EH\EJ, cnorm=\Ee, cr=^M, cub1=\ED,
+       cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
+       cuu1=\EA, dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, il1=\EL,
+       ind=^J, ka1=\E#7, ka3=\E#5, kb2=\E#9, kbs=^H, kc1=\E#1,
+       kc3=\E#3, kclr=\E#7, kcub1=\E#K, kcud1=\E#P, kcuf1=\E#M,
+       kcuu1=\E#H, kf0=\E#D, kf1=\E#;, kf2=\E#<, kf3=\E#=, kf4=\E#>,
+       kf5=\E#?, kf6=\E#@, kf7=\E#A, kf8=\E#B, kf9=\E#C, khome=\E#G,
+       kil1=\E#R, kind=\E#2, kri=\E#8, lf0=f10, nel=^M^J, rc=\Ek,
+       ri=\EI, rmcup=, rmso=\Eq, rs1=\Ez_\Eb@\EcA, sc=\Ej, sgr0=\Eq,
+       smcup=\Ee, smso=\Ep,
+
 #### BeOS
 #
 # BeOS entry for Terminal program Seems to be almost ANSI
@@ -712,13 +890,14 @@ beterm|BeOS Terminal,
 #
 linux-basic|linux console,
        am, bce, eo, mir, msgr, xenl, xon,
-       it#8, ncv#18,
+       it#8, ncv#18, U8#1,
        acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
        bel=^G, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-       cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-       cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
-       dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
-       el1=\E[1K, flash=\E[?5h\E[?5l$<200/>, home=\E[H,
+       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
+       dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J,
+       el=\E[K, el1=\E[1K, flash=\E[?5h\E[?5l$<200/>, home=\E[H,
        hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
        il=\E[%p1%dL, il1=\E[L, ind=^J, kb2=\E[G, kbs=\177,
        kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
@@ -746,12 +925,12 @@ linux-m|Linux console no color,
 # 1.9.9.
 linux-c-nc|linux console with color-change,
        ccc,
-       initc=\E]P%p1%x%p2%{256}%*%{1000}%/%02x%p3%{256}%*%{1000}%/%02x%p4%{256}%*%{1000}%/%02x,
+       initc=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x,
        oc=\E]R, use=linux-basic,
 # From: Dennis Henriksen <opus@osrl.dk>, 9 July 1996
 linux-c|linux console 1.3.6+ for older ncurses,
        ccc,
-       initc=\E]P%?%p1%{9}%>%t%p1%{10}%-%'a'%+%c%e%p1%d%;%p2%{256}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%p3%{256}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%p4%{256}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;,
+       initc=\E]P%?%p1%{9}%>%t%p1%{10}%-%'a'%+%c%e%p1%d%;%p2%{255}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%p3%{255}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%p4%{255}%*%{1000}%/%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'a'%+%c%e%gx%d%;,
        oc=\E]R, use=linux-basic,
 
 # The 2.2.x kernels add a private mode that sets the cursor type; use that to
@@ -761,6 +940,15 @@ linux|linux console,
        civis=\E[?25l\E[?1c, cnorm=\E[?25h\E[?0c,
        cvvis=\E[?25h\E[?8c, use=linux-c-nc,
 
+# Subject: linux 2.6.26 vt back_color_erase
+# Changes to the Linux console driver broke bce model as reported in
+#      https://bugzilla.novell.com/show_bug.cgi?id=418613
+# apparently from
+#      http://lkml.org/lkml/2008/4/26/305
+#      http://groups.google.com/group/fa.linux.kernel/browse_thread/thread/87f98338f0d636bb/aa96e8b86cee0d1e?lnk=st&q=#aa96e8b86cee0d1e
+linux2.6.26|linux console w/o bce,
+       bce@, use=linux,
+
 # See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
 linux-nic|linux with ich/ich1 suppressed for non-curses programs,
        ich@, ich1@, use=linux,
@@ -805,6 +993,41 @@ kon|kon2|jfbterm|Kanji ON Linux console,
        initp@, kcbt@, oc@, op=\E[37;40m, rs1=\Ec, tsl=\E[?T,
        use=linux,
 
+# 16-color linux console entry; this works with a 256-character
+# console font but bright background colors turn into dim ones when
+# you use a 512-character console font. This uses bold for bright
+# foreground colors and blink for bright background colors.
+linux-16color|linux console with 16 colors,
+       colors#16, ncv#54, pairs#256,
+       setab=\E[4%p1%{8}%m%d%?%p1%{8}%>%t;5%e%p1%{8}%=%t;2%e;25%;m,
+       setaf=\E[3%p1%{8}%m%d%?%p1%{8}%>%t;1%e%p1%{8}%=%t;2%e;21%;m,
+       use=linux,
+
+# bterm (bogl 0.1.18)
+# Implementation is in bogl-term.c
+# Key capabilities from linux terminfo entry
+#
+# Notes:
+# bterm only supports acs using wide-characters, has case for these: qjxamlkut
+# bterm does not support sgr, since it only processes one parameter -TD
+bterm|bogl virtual terminal,
+       am, bce,
+       colors#8, cols#80, lines#24, pairs#64,
+       acsc=aajjkkllmmqqttuuxx, bold=\E[1m, civis=\E[?25l,
+       clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M, cub1=^H, cud1=^J,
+       cup=\E[%i%p1%d;%p2%dH, ed=\E[J, el=\E[K, home=\E[H, ind=^J,
+       kb2=\E[G, kbs=\177, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, kf1=\E[[A,
+       kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
+       kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
+       kf18=\E[32~, kf19=\E[33~, kf2=\E[[B, kf20=\E[34~,
+       kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~,
+       kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~,
+       kmous=\E[M, knp=\E[6~, kpp=\E[5~, kspd=^Z, nel=^M^J,
+       op=\E49;39m, rev=\E[7m, ri=\EM, rmacs=^O, rmso=\E[27m,
+       rmul=\E[24m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+       sgr0=\E[0m, smacs=^N, smso=\E[7m, smul=\E[4m,
+
 #### Mach
 #
 
@@ -860,7 +1083,7 @@ mach-color|Mach Console with ANSI color,
 hurd|The GNU Hurd console server,
        am, bce, bw, eo, km, mir, msgr, xon,
        colors#8, it#8, ncv#18, pairs#64,
-       acsc=++\,\,--..00ii``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
        bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
        clear=\Ec, cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
        cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
@@ -929,7 +1152,7 @@ pmcons|pmconsole|PMAX console,
 scoansi-old|SCO Extended ANSI standard crt (5.0.5),
        OTbs, am, bce, eo, xon,
        colors#8, cols#80, it#8, lines#25, pairs#64,
-       acsc=-\230.\231\,.+/0[5566778899\:\:;;<<==>>FFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXX`\204a0fxgqh2jYk?lZm@nEqDtCu4vAwBx3yszr{c}\034~\207,
+       acsc=+/\,.-\230.\2310[5566778899\:\:;;<<==>>FFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXX`\204a0fxgqh2jYk?lZm@nEqDtCu4vAwBx3yszr{c}\034~\207,
        bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
        civis=\E[=14;12C, clear=\E[H\E[2J, cnorm=\E[=10;12C,
        cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
@@ -996,7 +1219,7 @@ att6386|at386|386at|AT&T WGS 6386 console,
        sc=\E7,
        sgr=\E[10m\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p9%t;12%e;10%;%?%p7%t;9%;m,
        sgr0=\E[0;10m, smacs=\E[12m, smso=\E[7m, smul=\E[4m,
-       tbc=\E[2g, vpa=\E[%i%p1%dd, use=klone+color,
+       tbc=\E[3g, vpa=\E[%i%p1%dd, use=klone+color,
 # (pc6300plus: removed ":KM=/usr/lib/ua/kmap.s5:"; renamed BO/EE/CI/CV -- esr)
 pc6300plus|AT&T 6300 plus,
        OTbs, am, xon,
@@ -1364,7 +1587,7 @@ qnxt2|qnx 2.15 serial terminal,
 qansi-g|QNX ANSI,
        am, eslok, hs, xon,
        colors#8, cols#80, it#8, lines#25, ncv#19, pairs#64, wsl#80,
-       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~Oa,
+       acsc=Oa``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
        bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
        clear=\E[2J\E[H, cnorm=\E[?25h\E[?12l, cr=^M,
        csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
@@ -1407,7 +1630,7 @@ qansi-g|QNX ANSI,
        setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
        sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;9%;m%?%p9%t\016%e\017%;,
        sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smso=\E[7m,
-       smul=\E[4m, tbc=\E[2g,
+       smul=\E[4m, tbc=\E[3g,
        tsl=\E7\E1;24r\E[?6l\E[25;%i%p1%dH,
 #
 qansi|QNX ansi with console writes,
@@ -1593,11 +1816,12 @@ ofcons|DNARD OpenFirmware console,
 wsvt25|NetBSD wscons in 25 line DEC VT220 mode,
        bce, msgr,
        colors#8, cols#80, it#8, lines#25, ncv#2, pairs#64,
-       is2=\E[r\E[25;1H, kend=\E[8~, kf1=\E[11~, kf10=\E[21~,
+       civis=\E[?25l, cnorm=\E[?25h,
+       is2=\E[r\E[25;1H, kdch1=\E[3~, kend=\E[8~, kf1=\E[11~, kf10=\E[21~,
        kf11=\E[23~, kf12=\E[24~, kf2=\E[12~, kf3=\E[13~,
        kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
-       kf9=\E[20~, khome=\E[7~, op=\E[m, setab=\E[4%p1%dm,
-       setaf=\E[3%p1%dm, use=vt220,
+       kf9=\E[20~, khome=\E[7~, op=\E[m, rs1=\Ec,
+       setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=vt220,
 
 wsvt25m|NetBSD wscons in 25 line DEC VT220 mode with Meta,
        km, use=wsvt25,
@@ -1696,6 +1920,8 @@ cons25w|ansiw|ansi80x25-raw|freebsd console (25-line raw mode),
 cons25|ansis|ansi80x25|freebsd console (25-line ansi mode),
        acsc=-\030.^Y0\333`\004a\260f\370g\361h\261i\025j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263y\363z\362~\371,
        use=cons25w,
+cons25-debian|freebsd console with debian backspace (25-line ansi mode),
+       kbs=\177, kdch1=\E[3~, use=cons25,
 cons25-m|ansis-mono|ansi80x25-mono|freebsd console (25-line mono ansi mode),
        colors@, pairs@,
        bold@, dim@, op@, rmul=\E[m, setab@, setaf@,
@@ -1840,7 +2066,7 @@ bsdos-ppc|PowerPC BSD/OS Console,
 vt52|dec vt52,
        OTbs,
        cols#80, it#8, lines#24,
-       acsc=ffgghhompoqqss.k, bel=^G, clear=\EH\EJ, cr=^M,
+       acsc=+h.k0affggolpnqprrss, bel=^G, clear=\EH\EJ, cr=^M,
        cub1=\ED, cud1=\EB, cuf1=\EC,
        cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
        el=\EK, home=\EH, ht=^I, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
@@ -2274,9 +2500,9 @@ vt200-js|vt220-js|dec vt200 series with jump scroll,
        am,
        cols#80,
        bel=^G, clear=\E[H\E[J, cr=^M, csr=\E[%i%p1%d;%p2%dr,
-       cub1=^H, cud1=^J, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
-       dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
-       il1=\E[L, ind=\ED,
+       cub1=^H, cud1=^J, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+       cuu1=\E[A, dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H,
+       ht=^I, il1=\E[L, ind=\ED,
        is2=\E[61"p\E[H\E[?3l\E[?4l\E[?1l\E[?5l\E[?6l\E[?7h\E[?8h\E[?25h\E>\E[m,
        kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
        kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, nel=^M\ED, rc=\E8,
@@ -2662,8 +2888,8 @@ crt|crt-vt220|CRT 2.3 emulating VT220,
 # the default behavior -TD
 
 putty|PuTTY terminal emulator,
-       am, bce, bw, ccc, hs, mir, msgr, xenl, xon,
-       colors#8, it#8, ncv#22, pairs#64,
+       am, bce, bw, ccc, hs, mir, msgr, xenl, xon, XT,
+       colors#8, it#8, ncv#22, pairs#64, U8#1,
        acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
        bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
        clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
@@ -2679,13 +2905,13 @@ putty|PuTTY terminal emulator,
        indn=\E[%p1%dS,
        initc=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x,
        is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>\E]R,
-       kb2=\E[G, kbs=\177, kcan=^C, kcbt=\E[Z, kcub1=\E[D,
-       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~,
-       kend=\E[4~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
-       kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
-       kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
-       kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
-       kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+       kb2=\E[G, kbs=\177, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~,
+       kf1=\E[11~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+       kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
+       kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\E[12~,
+       kf20=\E[34~, kf3=\E[13~, kf4=\E[14~, kf5=\E[15~,
+       kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
        khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
        kspd=^Z, nel=^M^J, oc=\E]R, op=\E[39;49m, rc=\E8, rev=\E[7m,
        ri=\EM, rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l,
@@ -2751,7 +2977,7 @@ putty-vt100|VT100+ keyboard layout,
 # retrieving the window title, and for setting the window size (i.e., using
 # "resize -s"), though it does not pass SIGWINCH to the application if the
 # user resizes the window with the mouse.
-teraterm|Tera Term Pro,
+teraterm2.3|Tera Term Pro,
        km, xon@,
        ncv#43, vt@,
        acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
@@ -2771,6 +2997,28 @@ teraterm|Tera Term Pro,
        smul=\E[4m, vpa=\E[%i%p1%dd, use=vt100+enq,
        use=klone+color, use=vt100,
 
+# Version 4.59 has regular vt100 line-drawing (so it is no longer necessary
+# to choose a Windows OEM font).
+#
+# Testing with tack:
+#      - it does not have xenl (suppress that)
+#      - underline seems to work with color (modify ncv).
+# Testing with vttest:
+#      - wrapping differs from vt100 (menu 1).
+#      - it recognizes xterm's X10 and normal mouse tracking, but none of the
+#        other flavors.
+#      - it recognizes the dtterm window controls for reporting size in
+#        characters and pixels.
+#      - it passes SIGWINCH.
+teraterm4.59|Tera Term Pro,
+       bce, xenl@,
+       ncv#41,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       kmous=\E[M, use=teraterm2.3,
+
+teraterm|Tera Term,
+       use=teraterm4.59,
+
 # Tested with WinNT 4.0, the telnet application assumes the screensize is
 # 25x80.  This entry uses the 'Terminal' font, to get line-drawing characters.
 #
@@ -2833,11 +3081,15 @@ ms-vt100+|vt100+|windows XP vt100+ (sic),
 ms-vt-utf8|vt-utf8|UTF-8 flavor of vt100+,
        use=ms-vt100+,
 
+# expect-5.44.1.15/example/tkterm
 # a minimal subset of a vt100 (compare with "news-unk).
+#
+# The missing "=" in smkx is not a typo (here), but an error in tkterm.
 tt|tkterm|Don Libes' tk text widget terminal emulator,
-       clear=\E[H\E[J, cr=^M, cuf1=\E[C, cup=\E[%p1%d;%p2%dH,
-       cuu1=\E[A, ind=^J, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
-       kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW, kf9=\EOX, rmso=\E[m,
+       clear=\E[H\E[J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
+       cup=\E[%p1%d;%p2%dH, cuu1=\E[A, ind=^J, kf1=\EOP, kf2=\EOQ,
+       kf3=\EOR, kf4=\EOS, kf5=\EOT, kf6=\EOU, kf7=\EOV, kf8=\EOW,
+       kf9=\EOX, rmkx=\E[?1l\E>, rmso=\E[m, smkx=\E[?1h\E,
        smso=\E[7m,
 
 #### X terminal emulators
@@ -3225,11 +3477,15 @@ xterm-basic|modern xterm terminal emulator - common,
 xterm-xi|xterm on XI Graphics Accelerated X under BSD/OS 3.1,
        rmso=\E[m, rmul=\E[m, use=xterm-xf86-v33,
 
-# This is one of the variants of XFree86 3.3 xterm, updated for 4.0 (T.Dickey)
+# 16-colors is one of the variants of XFree86 3.3 xterm, updated for 4.0 (T.Dickey)
+# If configured to support 88- or 256-colors (which is fairly common in 2009),
+# xterm also recognizes the control sequences for initc -TD
 xterm-16color|xterm with 16 colors like aixterm,
+       ccc,
+       initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\,
        use=ibm+16color, use=xterm-new,
 
-# This is a compile-time feature of XFree86 xterm beginning with
+# 256-colors is a compile-time feature of XFree86 xterm beginning with
 # patch #111 (1999/7/10) -TD
 xterm+256color|xterm 256-color feature,
        ccc,
@@ -3239,7 +3495,7 @@ xterm+256color|xterm 256-color feature,
        setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
        setb@, setf@,
 
-# This is a compile-time feature of XFree86 xterm beginning with
+# 88-colors is a compile-time feature of XFree86 xterm beginning with
 # patch #115 (1999/9/18) -TD
 #
 # Note that the escape sequences used are the same as for 256-colors - xterm
@@ -3380,6 +3636,11 @@ xterm-24|vs100|xterms|xterm terminal emulator (X Window System),
 xterm|xterm terminal emulator (X Window System),
        use=xterm-new,
 
+# This entry assumes that xterm's handling of VT100 SI/SO is disabled by
+# setting the vt100Graphics resource to false.
+xterm-utf8|xterm with no VT100 line-drawing in UTF-8 mode,
+       U8#1, use=xterm,
+
 # These entries allow access to the X titlebar and icon name as a status line.
 # Note that twm (and possibly window managers descended from it such as tvtwm,
 # ctwm, and vtwm) track windows by icon-name; thus, you don't want to mess
@@ -3406,7 +3667,7 @@ xterm-bold|xterm terminal emulator (X11R6 Window System) standout w/bold,
 #  -- MATSUMOTO Shoji)
 # kterm implements acsc via built-in table of X Drawable's
 kterm|kterm kanji terminal emulator (X window system),
-       eslok, hs,
+       eslok, hs, XT,
        ncv@,
        acsc=``aajjkkllmmnnooppqqrrssttuuvvwwxx~~,
        csr=\E[%i%p1%d;%p2%dr, dsl=\E[?H, enacs=, fsl=\E[?F,
@@ -3430,7 +3691,7 @@ xterm1|xterm terminal emulator ignoring the alternate screen buffer,
 # The README's with the distribution also say that it supports SGR 21, 24, 25
 # and 27, but they are not present in the terminfo or termcap.
 color_xterm|cx|cx100|color_xterm color terminal emulator for X,
-       OTbs, am, km, mir, msgr, xenl,
+       OTbs, am, km, mir, msgr, xenl, XT,
        cols#80, it#8, lines#65, ncv@,
        acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
        bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
@@ -3543,15 +3804,60 @@ gnome-fc5|GNOME Terminal,
 # of the keys (which more/less correspond to the termcap values), and will
 # interpret those according to the $TERM value, but others not in the
 # terminfo according to some constantly changing set of hacker guidelines -TD
-gnome-2007|GNOME Terminal snapshot 2.18.1,
+vte-2007|VTE in GNOME Terminal snapshot 2.18.1,
        use=xterm+pcc2, use=gnome-fc5,
-
+gnome-2007|GNOME Terminal snapshot 2.18.1,
+       use=vte-2007,
+
+# GNOME Terminal 2.22.3 (2008 snapshot)
+#
+# In vttest, it claims to be a vt220 with national replacement character-sets,
+# but aside from the identifier string, implements only a small fraction of
+# vt220's behavior, which will make it less usable on a VMS system (unclear
+# what the intent of the developer is, since the NRC feature exposed in vttest
+# by this change does not work).
+vte-2008|VTE in GNOME Terminal snapshot 2.22.3,
+       use=vte+pcfkeys, use=vte-2007,
+gnome-2008|GNOME Terminal snapshot 2.22.3,
+       use=vte-2008,
+
+# GNOME terminal may automatically use the contents of the "xterm" terminfo to
+# supply key information which is not built into the program.  With 2.22.3,
+# this list is built into the program (which addresses the inadvertant use of
+# random terminfo data, though using a set of values which does not correspond
+# to any that xterm produces - still not solving the problem that GNOME
+# terminal hardcodes the $TERM variable as "xterm").
+#
+#      terminfo        modifier        code    keys
+#      kf13-kf24       shift           2       F1 to F12
+#      kf25-kf36       control         5       F1 to F12
+#      kf37-kf48       shift/control   6       F1 to F12
+#      kf49-kf60       alt             3       F1 to F12
+#      kf61-kf63       shift-alt       4       F1 to F3
+#
+# The parameters with \EO (SS3) are technically an error, since SS3 should have
+# no parameters.  This appears to be rote copying based on xterm+pcc0.
+vte+pcfkeys|VTE's variation on xterm+pcfkeys,
+       kf1=\EOP, kf13=\EO1;2P, kf14=\EO1;2Q, kf15=\EO1;2R,
+       kf16=\EO1;2S, kf2=\EOQ, kf25=\EO1;5P, kf26=\EO1;5Q,
+       kf27=\EO1;5R, kf28=\EO1;5S, kf3=\EOR, kf37=\EO1;6P,
+       kf38=\EO1;6Q, kf39=\EO1;6R, kf4=\EOS, kf40=\EO1;6S,
+       kf49=\EO1;3P, kf50=\EO1;3Q, kf51=\EO1;3R, kf52=\EO1;3S,
+       kf61=\EO1;4P, kf62=\EO1;4Q, kf63=\EO1;4R,
+       use=xterm+pcfkeys,
+gnome+pcfkeys|VTE's variation on xterm+pcfkeys,
+       use=vte+pcfkeys,
+
+vte|VTE aka GNOME Terminal,
+       use=vte-2008,
 gnome|GNOME Terminal,
-       use=gnome-2007,
+       use=vte,
 
 # palette is hardcoded...
+vte-256color|VTE with xterm 256-colors,
+       initc@, use=xterm+256color, use=vte,
 gnome-256color|GNOME Terminal with xterm 256-colors,
-       initc@, use=xterm+256color, use=gnome,
+       use=vte-256color,
 
 # XFCE Terminal 0.2.5.4beta2
 #
@@ -3560,7 +3866,7 @@ gnome-256color|GNOME Terminal with xterm 256-colors,
 # Since most of the terminfo-related behavior is due to the VTE library,
 # the terminfo is the same as gnome-terminal.
 xfce|Xfce Terminal,
-       use=gnome,
+       use=vte,
 
 # Multi-Gnome-Terminal 1.6.2
 #
@@ -3605,8 +3911,16 @@ kvt|KDE terminal,
 #
 # Updated for konsole 1.6.4:
 #    add konsole-solaris
+#
+# Updated for konsole 1.6.6:
+#    add control-key modifiers for function-keys, etc.
+#
+# vttest menu 1 shows that both konsole and gnome terminal do wrapping
+# different from xterm (and vt100's).  They have the same behavior in this
+# detail, but it is unclear which copies the other.
 konsole-base|KDE console window,
-       bce, km@, npc,
+       bce, km@, npc, XT,
+       ncv@,
        bel@, blink=\E[5m, civis=\E[?25l, cnorm=\E[?25h,
        ech=\E[%p1%dX, flash=\E[?5h$<100/>\E[?5l,
        hpa=\E[%i%p1%dG, indn=\E[%p1%dS, kbs=\177, kdch1@,
@@ -3633,11 +3947,12 @@ konsole-xf3x|KDE console window with keyboard for XFree86 3.x xterm,
 # The value for kbs reflects local customization rather than the settings used
 # for XFree86 xterm.
 konsole-xf4x|KDE console window with keyboard for XFree86 4.x xterm,
-       kend=\EOF, kf1=\EOP, kf13=\EO2P, kf14=\EO2Q, kf15=\EO2R,
-       kf16=\EO2S, kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~,
-       kf2=\EOQ, kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
-       kf23=\E[23;2~, kf24=\E[24;2~, kf3=\EOR, kf4=\EOS,
-       khome=\EOH, use=konsole-vt100,
+       kend=\EOF, khome=\EOH, use=konsole+pcfkeys,
+       use=konsole-vt100,
+# Konsole does not implement shifted cursor-keys.
+konsole+pcfkeys|konsole subset of xterm+pcfkeys,
+       kLFT@, kRIT@, kcbt=\E[Z, kind@, kri@, kDN@, kUP@, use=xterm+pcc2,
+       use=xterm+pcf0,
 # KDE's "vt100" keyboard has no relationship to any terminal that DEC made, but
 # it is still useful for deriving the other entries.
 konsole-vt100|KDE console window with vt100 (sic) keyboard,
@@ -3678,7 +3993,7 @@ konsole-256color|KDE console window with xterm 256-colors,
 #      control/shift/alt       kf1 to kf12     \E[11;8~ to \E[24;8~
 #
 mlterm|multi lingual terminal emulator,
-       am, eslok, km, mc5i, mir, msgr, npc, xenl,
+       am, eslok, km, mc5i, mir, msgr, npc, xenl, XT,
        colors#8, cols#80, it#8, lines#24, pairs#64,
        acsc=00``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
        bel=^G, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
@@ -3720,6 +4035,9 @@ mlterm+pcfkeys|fragment for PC-style fkeys,
        kRIT6=\EO1;6C, kRIT7=\EO1;7C, kUP=\EO1;2A, kUP3=\EO1;3A,
        kUP4=\EO1;4A, kUP5=\EO1;5A, kUP6=\EO1;6A, kUP7=\EO1;7A,
 
+mlterm-256color|mlterm 3.0 with xterm 256-colors,
+       use=xterm+256color, use=rxvt,
+
 # From: Thomas Dickey <dickey@clark.net> 04 Oct 1997
 # Updated: Oezguer Kesim <kesim@math.fu-berlin.de> 02 Nov 1997
 # Notes:
@@ -3742,7 +4060,7 @@ mlterm+pcfkeys|fragment for PC-style fkeys,
 # removed dch/dch1 because they are inconsistent with bce/ech -TD
 # remove km as per tack test -TD
 rxvt-basic|rxvt terminal base (X Window System),
-       OTbs, am, bce, eo, mir, msgr, xenl, xon,
+       OTbs, am, bce, eo, mir, msgr, xenl, xon, XT,
        cols#80, it#8, lines#24,
        acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
        bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
@@ -3860,12 +4178,12 @@ rxvt+pcfkeys|fragment for PC-style fkeys,
        kf38=\E[29\^, kf39=\E[31\^, kf4=\E[14~, kf40=\E[32\^,
        kf41=\E[33\^, kf42=\E[34\^, kf43=\E[23@, kf44=\E[24@,
        kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-       kfnd=\E[1~, khome=\E[7~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
-       kslt=\E[4~, kDC5=\E[3\^, kDC6=\E[3@, kDN=\E[b, kDN5=\EOb,
-       kEND5=\E[8\^, kEND6=\E[8@, kHOM5=\E[7\^, kHOM6=\E[7@,
-       kIC5=\E[2\^, kIC6=\E[2@, kLFT5=\EOd, kNXT5=\E[6\^,
-       kNXT6=\E[6@, kPRV5=\E[5\^, kPRV6=\E[5@, kRIT5=\EOc,
-       kUP=\E[a, kUP5=\EOa,
+       kfnd=\E[1~, khome=\E[7~, kich1=\E[2~, kind=\E[a, knp=\E[6~,
+       kpp=\E[5~, kri=\E[b, kslt=\E[4~, kDC5=\E[3\^, kDC6=\E[3@,
+       kDN=\E[b, kDN5=\EOb, kEND5=\E[8\^, kEND6=\E[8@,
+       kHOM5=\E[7\^, kHOM6=\E[7@, kIC5=\E[2\^, kIC6=\E[2@,
+       kLFT5=\EOd, kNXT5=\E[6\^, kNXT6=\E[6@, kPRV5=\E[5\^,
+       kPRV6=\E[5@, kRIT5=\EOc, kUP=\E[a, kUP5=\EOa,
 
 rxvt|rxvt terminal emulator (X Window System),
        ncv@,
@@ -3880,10 +4198,10 @@ rxvt-88color|rxvt 2.7.9 with xterm 88-colors,
 rxvt-xpm|rxvt terminal emulator (X Window System),
        use=rxvt,
 rxvt-cygwin|rxvt terminal emulator (X Window System) on cygwin,
-       acsc=0\333+\257\,\256-\^`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
+       acsc=+\257\,\256-\^0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
        use=rxvt,
 rxvt-cygwin-native|rxvt terminal emulator (native MS Window System port) on cygwin,
-       acsc=0\333+\257\,\256-\^`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330~\376,
+       acsc=+\257\,\256-\^0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330~\376,
        use=rxvt-cygwin,
 
 # This variant is supposed to work with rxvt 2.7.7 when compiled with
@@ -3891,12 +4209,22 @@ rxvt-cygwin-native|rxvt terminal emulator (native MS Window System port) on cygw
 rxvt-16color|xterm with 16 colors like aixterm,
        ncv#32, use=ibm+16color, use=rxvt,
 
-# mrxvt 0.5.3
+# mrxvt 0.5.4
 #
 # mrxvt is based on rxvt 2.7.11, but has by default XTERM_FKEYS defined, which
 # makes its function-keys different from other flavors of rxvt -TD
 mrxvt|multitabbed rxvt,
-       use=xterm+pcc2, use=xterm+r6f2, use=rxvt,
+       XT,
+       kEND=\E[8;2~, kHOM=\E[7;2~, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, kend=\E[8~, khome=\E[7~,
+       kEND3=\E[8;3~, kEND4=\E[8;4~, kEND5=\E[8;5~,
+       kEND6=\E[8;6~, kEND7=\E[8;7~, kHOM3=\E[7;3~,
+       kHOM4=\E[7;4~, kHOM5=\E[7;5~, kHOM6=\E[7;6~,
+       kHOM7=\E[7;7~, use=xterm+r6f2, use=xterm+pcfkeys,
+       use=rxvt,
+
+mrxvt-256color|multitabbed rxvt with 256 colors,
+       use=xterm+256color, use=mrxvt,
 
 # From: Michael Jennings <mej@valinux.com>
 #
@@ -3909,7 +4237,7 @@ mrxvt|multitabbed rxvt,
 # remove nonworking flash -TD
 # remove km as per tack test -TD
 Eterm|Eterm-color|Eterm with xterm-style color support (X Window System),
-       am, bce, bw, eo, mc5i, mir, msgr, xenl, xon,
+       am, bce, bw, eo, mc5i, mir, msgr, xenl, xon, XT,
        btns#5, cols#80, it#8, lines#24, lm#0, ncv@,
        acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
        bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
@@ -3943,6 +4271,11 @@ Eterm-256color|Eterm with xterm 256-colors,
 Eterm-88color|Eterm with 88 colors,
        use=xterm+88color, use=Eterm,
 
+# Based on rxvt 2.4.8, it has a few differences in key bindings
+aterm|AfterStep terminal,
+       XT,
+       kbs=\177, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, use=rxvt,
+
 # xiterm  0.5-5.2
 # This is not based on xterm's source...
 # vttest shows several problems with keyboard, cursor-movements.
@@ -3959,7 +4292,7 @@ xtermm|xterm terminal emulator (monocrome),
        btns#3, cols#80, it#8, lines#24,
        acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
        bel=^G, blink@, bold=\E[1m, clear=\E[H\E[2J, cr=^M,
-       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[1D,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
        cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
        cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
        dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
@@ -4062,7 +4395,7 @@ emu|emu native mode,
        acsc=61a\202f\260g2j\213k\214l\215m\216n\217o\220q\222s\224t\225u\226v\227w\230x\231~\244,
        bel=^G, blink=\EW, bold=\EU, civis=\EZ, clear=\EP\EE0;0;,
        cnorm=\Ea, cr=^M, csr=\Ek%p1%d;%p2%d;, cub=\Eq-%p1%d;,
-       cub1=^H, cud=\Ep%p1%d;, cud1=\EB, cuf=\Eq%p1%d;, cuf1=\ED,
+       cub1=^H, cud=\Ep%p1%d;, cud1=\EB, cuf=\Eq%p1%d;, cuf1=\EC,
        cup=\EE%p1%d;%p2%d;, cuu=\Ep-%p1%d;, cuu1=\EA,
        dch=\EI%p1%d;, dch1=\EI1;, dl=\ER%p1%d;, dl1=\ER1;,
        ech=\Ej%p1%d;, ed=\EN, el=\EK, el1=\EL, home=\EE0;0;, ht=^I,
@@ -4207,6 +4540,31 @@ decansi|ANSI emulation with DEC compatibility hacks,
        smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, u6=\E[%i%d;%dR,
        u7=\E[6n, vpa=\E[%i%p1%dd,
 
+#### VWM
+#
+# vwmterm is a terminal emulator written for the VWM console window manager
+#
+vwmterm|(vwm term),
+       am, bce, ccc, mir, msgr, npc, xenl, xon,
+       colors#8, pairs#64,
+       acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+       bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+       clear=\E[H\E[J, cnorm=\E[?25h, cr=^M, cub=\E[%p1%dD,
+       cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
+       cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
+       cuu1=\E[A, cvvis=\E[?25h, dim=\E[2m, ed=\E[J, el=\E[K,
+       home=\E[H, il1=\E[L, ind=^J, invis=\E[8m, kcub1=\E[D,
+       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~,
+       kend=\E[4~, kf1=\E[[A, kf10=\E[21~, kf11=\E[22~,
+       kf12=\E[23~, kf2=\E[[B, kf3=\E[[C, kf4=\E[[D, kf5=\E[[E,
+       kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+       khome=\E[1~, knp=\E[6~, kpp=\E[5~, rev=\E[7m, rmacs=\E[10m,
+       rmam=\E[?7l, rmcup=\E[?1049l, rs1=\E[H\E[J\E[m\Ec,
+       setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+       sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
+       sgr0=\E[0;10m, smacs=\E[11m, smam=\E[?7h,
+       smcup=\E[?1049h, smso=\E[3m, smul=\E[4m,
+
 #### MGR
 #
 # MGR is a Bell Labs window system lighter-weight than X.
@@ -4279,6 +4637,26 @@ eterm|gnu emacs term.el terminal emulation,
        sgr0=\E[m, smcup=\E7\E[?47h, smir=\E[4h, smso=\E[7m,
        smul=\E[4m,
 
+# The codes supported by the term.el terminal emulation in GNU Emacs 22.2
+eterm-color|Emacs term.el terminal emulator term-protocol-version 0.96,
+       am, mir, msgr, xenl,
+       colors#8, cols#80, lines#24, pairs#64,
+       bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
+       csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+       cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+       dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+       el=\E[K, el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@,
+       il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m, kbs=\177,
+       kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+       kdch1=\E[3~, kend=\E[4~, khome=\E[1~, kich1=\E[2~,
+       knp=\E[6~, kpp=\E[5~, op=\E[39;49m, rc=\E8, rev=\E[7m,
+       ri=\EM, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m, rs1=\Ec,
+       sc=\E7, setab=\E[%p1%'('%+%dm, setaf=\E[%p1%{30}%+%dm,
+       sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m,
+       sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m,
+       u6=\E[%i%d;%dR, u7=\E[6n,
+
 # Entries for use by the `screen' program by Juergen Weigert,
 # Michael Schroeder, Oliver Laumann.  The screen and
 # screen-w entries came with version 3.7.1.  The screen2 and screen3 entries
@@ -4296,7 +4674,7 @@ eterm|gnu emacs term.el terminal emulation,
 # tested with screen 3.09.08
 screen|VT 100/ANSI X3.64 virtual terminal,
        OTbs, OTpt, am, km, mir, msgr, xenl, G0,
-       colors#8, cols#80, it#8, lines#24, pairs#64,
+       colors#8, cols#80, it#8, lines#24, ncv@, pairs#64, U8#1,
        acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
        bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
        clear=\E[H\E[J, cnorm=\E[34h\E[?25h, cr=^M,
@@ -4322,7 +4700,8 @@ screen|VT 100/ANSI X3.64 virtual terminal,
 # The bce and status-line entries are from screen 3.9.13 (and require some
 # changes to .screenrc).
 screen-bce|VT 100/ANSI X3.64 virtual terminal with bce,
-       bce, use=screen,
+       bce,
+       ech@, use=screen,
 screen-s|VT 100/ANSI X3.64 virtual terminal with hardstatus line,
        dsl=\E_\E\\, fsl=\E\\, tsl=\E_, use=screen,
 
@@ -4415,10 +4794,20 @@ screen.teraterm|disable ncv in teraterm,
        use=screen+fkeys, use=screen,
 # Other terminals
 screen.rxvt|screen in rxvt,
-       bw,
+       bw, XT,
        cvvis@, flash@, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
        kcuu1=\EOA, use=screen+fkeys, use=vt100+enq,
        use=rxvt+pcfkeys, use=vt220+keypad, use=screen,
+screen.Eterm|screen in Eterm,
+       use=screen+fkeys, use=Eterm,
+screen.mrxvt|screen in mrxvt,
+       use=screen+fkeys, use=mrxvt,
+screen.vte|screen in any VTE-based terminal,
+       use=screen+fkeys, use=vte,
+screen.gnome|screen in GNOME Terminal,
+       use=screen+fkeys, use=gnome,
+screen.konsole|screen in KDE console window,
+       use=screen+fkeys, use=konsole,
 # fix the backspace key
 screen.linux|screen in linux console,
        bw,
@@ -4426,6 +4815,44 @@ screen.linux|screen in linux console,
 screen.mlterm|screen in mlterm,
        use=screen+fkeys, use=mlterm,
 
+# The default "screen" entry is reasonably portable, but not optimal for the
+# most widely-used terminal emulators.  The "bce" capability is supported in
+# screen since 3.9.13, and when used, will require fewer characters to be sent
+# to the terminal for updates.
+#
+# If you are using only terminals which support bce, then you can use this
+# feature in your screen configuration.
+#
+# Adding these lines to your ".screenrc" file will allow using these customized
+# entries:
+#      term screen-bce
+#      bce on
+#      defbce on
+screen-bce.xterm-new|screen optimized for modern xterm,
+       bce,
+       ech@, use=screen.xterm-new,
+screen-bce.rxvt|screen optimized for rxvt,
+       bce,
+       ech@, use=screen.rxvt,
+screen-bce.Eterm|screen optimized for Eterm,
+       bce,
+       ech@, use=screen.Eterm,
+screen-bce.mrxvt|screen optimized for mrxvt,
+       bce,
+       ech@, use=screen.mrxvt,
+screen-bce.gnome|screen optimized for GNOME-Terminal,
+       bce,
+       ech@, use=screen.gnome,
+screen-bce.konsole|screen optimized for KDE console window,
+       bce,
+       ech@, use=screen.konsole,
+screen-bce.linux|screen optimized for linux console,
+       bce,
+       ech@, use=screen.linux,
+screen-bce.mlterm|screen optimized for mlterm,
+       bce,
+       ech@, use=screen.mlterm,
+
 screen-w|VT 100/ANSI X3.64 virtual terminal with 132 cols,
        cols#132, use=screen,
 
@@ -4684,11 +5111,28 @@ sun-type4|Sun Workstation console with type 4 keyboard,
 # Most of the current references to sun-color are from users wondering why this
 # is the default on install.  Details from reading the wscons manpage, adding
 # cub, etc., here (rather than in the base sun-il entry) since it is not clear
-# when those were added -TD
+# when those were added -TD (2005-05-28)
+#
+# According to wscons manpage, color is supported only on IA systems.
+# Sun's terminfo entry documents bold and smul/rmul capabilities, but wscons
+# does not list these.  It also sets ncv#3, however that corresponds to
+# underline and standout.
+#
+# Since the documentation and terminfo do not agree, see also current code at
+# http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/io/tem_safe.c
+#
+# That (actually a different driver which "supports" sun-color) also supports
+# these features:
+#      vpa=\E[%i%p1%dd
+#      hpa=\E[%i%p1%d`
+#      cbt=\E[Z
+#      dim=\E[2m
+#      blink=\E[5m
+# It supports bold, but not underline -TD (2009-09-19)
 sun-color|Sun Microsystems Workstation console with color support (IA systems),
-       colors#8, pairs#64,
+       colors#8, ncv#3, pairs#64,
        cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
-       cuu=\E[%p1%dA, home=\E[H, op=\E[m\E[p, setab=\E[4%p1%dm,
+       cuu=\E[%p1%dA, home=\E[H, op=\E[0m, setab=\E[4%p1%dm,
        setaf=\E[3%p1%dm,
        setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
        setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
@@ -4900,7 +5344,7 @@ news29|news28-a|sony vt100 emulator 29 lines,
 nwp511|nwp-511|nwp-511 vt100,
        OTbs, OTpt, am, xenl,
        cols#80, lines#24,
-       clear=\E[;H\E[2J$<20/>, cuf1=\E[C,
+       clear=\E[;H\E[2J$<20/>, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
        cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A$<2/>, dl1=\E[M,
        ed=\E[J$<30/>, el=\E[K$<3/>,
        flash=\E[?5h\0\0\0\0\0\0\0\0\0\0\0\0\0\E[?5l,
@@ -4964,44 +5408,13 @@ dtterm|CDE desktop terminal,
 
 ### EMX termcap.dat compatibility modes
 #
-# Keypad:      Home=\0G        Up=\0H  PrPag=\0I
-#              ka1,kh          kcuu1           kpp,ka3
-#
-#              Left=\0K        5=\0L           Right=\0M
-#              kcub1           kb2             kcuf1
-#
-#              End=\0O         Down=\0P        NxPag=\0Q
-#              kc1,kend        kcud1           kc3,knp
-#
-#              Ins=\0R         Del=\0S
-#              kich1           kdch1
-#
-# On keyboard with 12 function keys,
-#      shifted f-keys: F13-F24
-#      control f-keys: F25-F36
-#      alt f-keys:     F37-F48
-# The shift/control/alt keys do not modify each other, but alt overrides both,
-# and control overrides shift.
-#
 # Also (possibly only EMX, so we don't put it in ansi.sys, etc): set the
 # no_color_video to inform the application that standout(1), underline(2)
 # reverse(4) and invisible(64) don't work with color.
 emx-base|DOS special keys,
        bce, bw,
        it#8, ncv#71,
-       bel=^G, ka1=\0G, ka3=\0I, kb2=\0L, kbs=^H, kc1=\0O, kc3=\0Q,
-       kcbt=\0^O, kcub1=\0K, kcud1=\0P, kcuf1=\0M, kcuu1=\0H,
-       kdch1=\0S, kend=\0O, kf1=\0;, kf10=\0D, kf11=\0\205,
-       kf12=\0\206, kf13=\0T, kf14=\0U, kf15=\0V, kf16=\0W,
-       kf17=\0X, kf18=\0Y, kf19=\0Z, kf2=\0<, kf20=\0[, kf21=\0\\,
-       kf22=\0], kf23=\0\207, kf24=\0\210, kf25=\0\^, kf26=\0_,
-       kf27=\0`, kf28=\0a, kf29=\0b, kf3=\0=, kf30=\0c, kf31=\0d,
-       kf32=\0e, kf33=\0f, kf34=\0g, kf35=\0\211, kf36=\0\212,
-       kf37=\0h, kf38=\0i, kf39=\0j, kf4=\0>, kf40=\0k, kf41=\0l,
-       kf42=\0m, kf43=\0n, kf44=\0o, kf45=\0p, kf46=\0q,
-       kf47=\0\213, kf48=\0\214, kf5=\0?, kf6=\0@, kf7=\0A, kf8=\0B,
-       kf9=\0C, khome=\0G, kich1=\0R, knp=\0Q, kpp=\0I,
-       use=ansi.sys,
+       bel=^G, use=ansi.sys,
 
 # Except for the "-emx" suffixes, these are as distributed with EMX 0.9b,
 # a Unix-style environment used on OS/2.  (Note that the suffix makes some
@@ -5169,7 +5582,7 @@ cygwinDBG|Debug Version for Cygwin,
        setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
        sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%;m,
        sgr0=\E[0;10m, smacs=\E[11m, smir=\E[4h, smso=\E[7m,
-       smul=\E[4m, tbc=\E[2g, vpa=\E[%i%p1%dd, use=vt102+enq,
+       smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd, use=vt102+enq,
 
 # Key definitions:
 # The encodings for unshifted arrow keys, F1-F12, Home, Insert, etc.  match the
@@ -5432,7 +5845,7 @@ pcmw|PC running Microsoft Works,
 interix|opennt|opennt-25|ntconsole|ntconsole-25|OpenNT-term compatible with color,
        am, bw, msgr,
        colors#8, cols#80, lines#25, ncv#3, pairs#64,
-       acsc=`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~q\304r\362s_t\303u\264v\301w\302x\263y\371z\372{\373|\374}\375~\376.\031-\030\,\021+^P0\333p\304r\304y\363z\362{\343|\330}\234,
+       acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
        bel=^G, bold=\E[1m, cbt=\E[Z, clear=\E[2J, cub=\E[%p1%dD,
        cub1=\E[D, cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC,
        cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
@@ -5458,7 +5871,7 @@ interix|opennt|opennt-25|ntconsole|ntconsole-25|OpenNT-term compatible with colo
        rmcup=\E[2b\E[u\r\E[K, rmso=\E[m, rmul=\E[m, rs1=\Ec,
        sc=\E[s, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
        setb=\E[%p1%{40}%+%dm, setf=\E[%p1%{30}%+%dm,
-       sgr0=\E[0m, smcup=\E[s\E[1b, smso=\E[1m, smul=\E[4m,
+       sgr0=\E[0m, smcup=\E[s\E[1b, smso=\E[7m, smul=\E[4m,
 
 opennt-35|ntconsole-35|OpenNT-term35 compatible with color,
        lines#35, use=opennt,
@@ -6130,10 +6543,10 @@ hp9837|hp98720|hp98721|HP 9000/300 workstations,
 hp9845|HP 9845,
        OTbs, am, da, db, eo, mir, xhp,
        cols#80, lines#21,
-       OTbc=\ED, clear=\EH\EJ, cuf1=\EC, cup=\E&a%p2%2dc%p1%2dY,
-       cuu1=\EA, dch1=\EP, dl1=\EM, ed=\EJ, el=\EK,
-       if=/usr/share/tabset/std, il1=\EL, rmir=\ER, rmso=\E&d@,
-       smir=\EQ, smso=\E&dB,
+       OTbc=\ED, clear=\EH\EJ, cub1=\ED, cud1=\EB, cuf1=\EC,
+       cup=\E&a%p2%2dc%p1%2dY, cuu1=\EA, dch1=\EP, dl1=\EM,
+       ed=\EJ, el=\EK, if=/usr/share/tabset/std, il1=\EL,
+       rmir=\ER, rmso=\E&d@, smir=\EQ, smso=\E&dB,
 # From: Charles A. Finnell of MITRE <finnell@mitre.org>, developed 07SEP90
 # (hp98550: replaced /usr/share/tabset/9837 with std because <it#8>,<hts=\E1>;
 # added empty <acsc> to avoid warnings re <smacs>/<rmacs> --esr)
@@ -8174,7 +8587,7 @@ wy100|wyse 100,
 wy120|wyse120|wy150|wyse150|Wyse 120/150,
        am, bw, hs, km, mc5i, mir, msgr, xon,
        cols#80, it#8, lh#1, lines#24, lw#8, nlab#8, pb#9601, wsl#45,
-       acsc=+/\,.0[iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
+       acsc=+/\,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
        bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<50>,
        cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
        cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<7>,
@@ -8253,7 +8666,7 @@ wy120-w-vb|wy120-wvb|wyse120-wvb|wy150-w-vb|wyse150-w-vb|Wyse 120/150 132-column
 wy60|wyse60|Wyse 60,
        am, bw, hs, km, mc5i, mir, msgr,
        cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#45,
-       acsc=+/\,.0[iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
+       acsc=+/\,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
        bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<100>,
        cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
        cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
@@ -8422,7 +8835,7 @@ wy99a-ansi|Wyse WY-99GT in ansi mode (US PC keyboard),
 wy99f|wy99fgt|wy-99fgt|Wyse WY-99GT (int'l PC keyboard),
        am, bw, hs, km, mc5i, mir, msgr, xon,
        cols#80, it#8, lines#25, wsl#46,
-       acsc='x+y.wi~_vj(k'l&m%n)o9q*s8t-u.v\,w+x=, bel=^G,
+       acsc='x+y.w_vi~j(k'l&m%n)o9q*s8t-u.v\,w+x=, bel=^G,
        blink=\EG2, cbt=\EI, civis=\E`0, clear=\E'\E(\032,
        cnorm=\E`4\E`1, cr=^M, cub1=^H, cud1=\Ej, cuf1=^L,
        cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
@@ -8474,7 +8887,7 @@ wy99fa|wy99fgta|wy-99fgta|Wyse WY-99GT (US PC keyboard),
 wy160|wyse160|Wyse 160,
        am, bw, hs, km, mc5i, mir, msgr,
        cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#38,
-       acsc=+/\,.0[iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
+       acsc=+/\,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
        bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<30>,
        cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
        cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<5>,
@@ -8668,7 +9081,7 @@ wy85-wvb|wyse85-wvb|wyse 85 with visible bell 132-columns,
 # terminfo. At one point, I found some reference indicating that this
 # terminal bug (not sending \E[) was acknowledged by Wyse (so it's not just
 # me), but I can't find that and the server under my bookmark to "Wyse
-# Technical" isn't responding.  So there's the question of wether the wy85
+# Technical" isn't responding.  So there's the question of whether the wy85
 # terminfo should reflect the manufactuer's intended behaviour of the terminal
 # or the actual."
 wy85-8bit|wyse85-8bit|wyse 85 in 8-bit mode,
@@ -8782,7 +9195,7 @@ wy185-wvb|wyse185-wvb|wyse 185+flash+132 cols,
 wy325|wyse325|Wyse epc,
        am, bw, hs, mc5i, mir,
        cols#80, lh#1, lines#24, lw#8, nlab#8, pb#9601, wsl#45,
-       acsc=+/\,.0[iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
+       acsc=+/\,.0[a2fxgqh1ihjYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
        bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<50>,
        cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
        cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<7>,
@@ -9229,7 +9642,7 @@ wy100q|Wyse 100 for Quotron,
 kermit|standard kermit,
        OTbs,
        cols#80, lines#24,
-       clear=\EE, cub1=^H, cuf1=\EC,
+       clear=\EE, cub1=^H, cud1=\EB, cuf1=\EC,
        cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
        el=\EK, home=\EH, is2=K0 Standard Kermit  9-25-84\n,
        kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^,
@@ -9714,14 +10127,14 @@ att5420_2|AT&T 5420 model 2 80 cols,
        acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
        blink=\E[5m, cbt=\E[1Z, clear=\EH\EJ, cnorm=\E[11;0j,
        cr=\EG, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
-       cud1=\E[1B, cuf=\E[%p1%dC, cuf1=\E[1C,
-       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cvvis=\E[11;1j,
-       dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
-       dl1=\E[M, ech=\E[%p1%ds\E[%p1%dD, ed=\E[0J, el=\E[0K,
-       el1=\E[1K, flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H,
-       hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
-       ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dE,
-       invis=\E[8m,
+       cud=\E[%p1%dB, cud1=\E[1B, cuf=\E[%p1%dC, cuf1=\E[1C,
+       cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[1A,
+       cvvis=\E[11;1j, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
+       dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%ds\E[%p1%dD, ed=\E[0J,
+       el=\E[0K, el1=\E[1K, flash=\E[?5h$<200>\E[?5l, fsl=\E8,
+       home=\E[H, hpa=\E[%p1%{1}%+%dG, ht=^I, hts=\EH,
+       ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
+       indn=\E[%p1%dE, invis=\E[8m,
        is1=\E[0;23r\Ex\Ey\E[2;0j\E[3;3j\E[4;0j\E[5;0j\E[6;0j\E[7;0j\E[8;0j\E[9;1j\E[10;0j\E[15;0j\E[16;1j\E[19;0j\E[20;1j\E[29;0j\E[1;24r,
        kbeg=\Et, kbs=^H, kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D,
        kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[P, kdl1=\E[M,
@@ -9894,7 +10307,7 @@ att4426|tty4426|teletype 4426S,
        bel=^G, bold=\E[5m, clear=\E[H\E[2J\E[1U\E[H\E[2J\E[1V,
        cr=^M, cub=\E[%p1%dD, cub1=\E[D, cud=\E[%p1%dB, cud1=\E[B,
        cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
-       cuu=\E[%p1%dA, cuu1=\EA, dch=\E[%p1%dP, dch1=\EP,
+       cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\EP,
        dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[0K, home=\E[H,
        hpa=\E[%p1%dG, ht=^I, hts=\E1, ich=\E[%p1%d@, ich1=\E\^,
        il=\E[%p1%dL, il1=\EL, ind=^J, indn=\E[%p1%dS,
@@ -9922,7 +10335,7 @@ att510a|bct510a|AT&T 510A Personal Terminal,
        acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~,
        bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
        civis=\E[11;0|, clear=\E[H\E[J, cnorm=\E[11;3|, cr=^M,
-       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[1B,
+       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
        cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
        cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[11;2|, dch=\E[%p1%dP,
        dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J,
@@ -9955,7 +10368,7 @@ att510d|bct510d|AT&T 510D Personal Terminal,
        acsc=+g\,h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~,
        bel=^G, blink=\E[5m, bold=\E[2;7m, cbt=\E[Z,
        clear=\E[H\E[J, cnorm=\E[11;3|, cr=^M, cub=\E[%p1%dD,
-       cub1=^H, cud=\E[%p1%dB, cud1=\E[1B, cuf=\E[%p1%dC,
+       cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC,
        cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
        cuu1=\E[A, cvvis=\E[11;2|, dch=\E[%p1%dP, dch1=\E[P,
        dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[0K,
@@ -10982,7 +11395,7 @@ aaa+unk|aaa-unk|ann arbor ambassador (internal - don't use this directly),
        sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
        sgr0=\E[m,
        smkx=\EP`>z~[[J`8xz~[[A`4xz~[[D`6xz~[[C`2xz~[[B\E\\,
-       smm=\E[>52h, smso=\E[7m, smul=\E[4m, tbc=\E[2g,
+       smm=\E[>52h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
        vpa=\E[%p1%{1}%+%dd,
 
 aaa+rv|ann arbor ambassador in reverse video,
@@ -11352,7 +11765,7 @@ adds980|a980|adds consul 980,
 cit80|cit-80|citoh 80,
        OTbs, am,
        cols#80, lines#24,
-       clear=\E[H\EJ, cr=^M, cub1=^H, cuf1=\E[C,
+       clear=\E[H\EJ, cr=^M, cub1=^H, cud1=\E[B, cuf1=\E[C,
        cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, ed=\EJ, el=\EK, ff=^L,
        ind=^J, is2=\E>, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
        kcuu1=\EOA, rmkx=\E[?1l\E>, smkx=\E[?1h\E=,
@@ -11361,9 +11774,9 @@ cit80|cit-80|citoh 80,
 cit101|citc|C.itoh fast vt100,
        OTbs, am, xenl,
        cols#80, lines#24,
-       bel=^G, clear=\E[H\E[2J, cnorm=\E[V\E8, cub1=^H, cuf1=\E[C,
-       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, cvvis=\E7\E[U,
-       dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K,
+       bel=^G, clear=\E[H\E[2J, cnorm=\E[V\E8, cub1=^H, cud1=\E[B,
+       cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
+       cvvis=\E7\E[U, dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K,
        flash=\E[?5h$<200/>\E[?5l, ich1=\E[@, il1=\E[L,
        is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[3g\E[>5g,
        kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
@@ -11381,9 +11794,9 @@ cit101e|C. Itoh CIT-101e,
        OTbs, OTpt, am, mir, msgr,
        cols#80, it#8, lines#24,
        acsc=, clear=\E[H\E[J, cnorm=, csr=\E[%i%p1%2d;%p2%2dr,
-       cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A,
-       cvvis=\E[?1l\E[?4l\E[?7h, dch1=\E[P, dl1=\E[M, ed=\E[J,
-       el=\E[K, if=/usr/share/tabset/vt100, il1=\E[L,
+       cub1=\E[D, cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%2d;%p2%2dH,
+       cuu1=\E[A, cvvis=\E[?1l\E[?4l\E[?7h, dch1=\E[P, dl1=\E[M,
+       ed=\E[J, el=\E[K, if=/usr/share/tabset/vt100, il1=\E[L,
        kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kf0=\EOT,
        kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf5=\EOm, kf6=\EOl,
        kf7=\EOM, kf8=\EOn, rc=\E8, ri=\EM, rmacs=^O, rmir=\E[4l,
@@ -12069,7 +12482,7 @@ avt-ns|concept avt no status line,
        sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
        sgr0=\E[m, smacs=\017$<1>, smcup=\E[=4l\E[1;24w\E2\r,
        smir=\E[4h, smkx=\E[1!z\E[0;3u, smso=\E[7m, smul=\E[4m,
-       tbc=\E[2g, vpa=\E[%p1%{1}%+%dd,
+       tbc=\E[3g, vpa=\E[%p1%{1}%+%dd,
 avt-rv-ns|concept avt in reverse video mode/no status line,
        flash=\E[=205l$<200>\E[=205h, is1=\E[=103l\E[=205h,
        use=avt-ns,
@@ -12279,7 +12692,7 @@ dgmode+color|Color info for Data General D470C terminals in DG mode,
 dgunix+ccc|Configurable color info for DG D430C terminals in DG-UNIX mode,
        bce, ccc,
        colors#52, ncv#53, pairs#26,
-       initp=\036RG0%p1%02X%p2%{256}%*%{1001}%/%02X%p3%{256}%*%{1001}%/%02X%p4%{256}%*%{1001}%/%02X%p5%{256}%*%{1001}%/%02X%p6%{256}%*%{1001}%/%02X%p7%{256}%*%{1001}%/%02X,
+       initp=\036RG0%p1%02X%p2%{255}%*%{1000}%/%02X%p3%{255}%*%{1000}%/%02X%p4%{255}%*%{1000}%/%02X%p5%{255}%*%{1000}%/%02X%p6%{255}%*%{1000}%/%02X%p7%{255}%*%{1000}%/%02X,
        oc=\036RG01A00FF00000000\036RG01B00000000FF00\036RG01C007F00000000\036RG01D000000007F00,
        op=\036RF4831A\036RF2E31B\036RF1D31C\036RF3F31D,
        scp=\036RG2%p1%02X,
@@ -12288,7 +12701,7 @@ dgunix+ccc|Configurable color info for DG D430C terminals in DG-UNIX mode,
 dg+ccc|Configurable color info for DG D430C terminals in DG mode,
        bce, ccc,
        colors#52, ncv#53, pairs#26,
-       initp=\036RG0%p1%{16}%/%{48}%+%c%p1%{16}%m%{48}%+%c%p2%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p3%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p4%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p5%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p6%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p7%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c,
+       initp=\036RG0%p1%{16}%/%{48}%+%c%p1%{16}%m%{48}%+%c%p2%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p3%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p4%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p5%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p6%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p7%{255}%*%{1000}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c,
        oc=\036RG01\:00??00000000\036RG01;00000000??00\036RG01<007?00000000\036RG01=000000007?00,
        op=\036RF4831\:\036RF2>31;\036RF1=31<\036RF3?31=,
        scp=\036RG2%p1%{16}%/%{48}%+%c%p1%{16}%m%{48}%+%c,
@@ -12324,11 +12737,11 @@ dg200|data general dasher 200,
 dg210|dg-ansi|Data General 210/211,
        am,
        cols#80, lines#24,
-       OTnl=\E[B, clear=\E[2J, cud1=\E[B, cup=\E[%i%p1%d;%p2%dH,
-       cuu1=\E[A, ed=\E[J, el=\E[K, home=\E[H, kcub1=\E[D,
-       kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
-       nel=\r\E[H\E[A\n, rmso=\E[0;m, rmul=\E[0;m, smso=\E[7;m,
-       smul=\E[4;m,
+       OTnl=\E[B, clear=\E[2J, cub1=\E[D, cud1=\E[B, cuf1=\E[C,
+       cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
+       home=\E[H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+       khome=\E[H, nel=\r\E[H\E[A\n, rmso=\E[0;m, rmul=\E[0;m,
+       smso=\E[7;m, smul=\E[4;m,
 # From: Peter N. Wan <ihnp4!gatech!gacsr!wan>
 # courtesy of Carlos Rucalde of Vantage Software, Inc.
 # (dg211: this had <cup=\020%r%.%>., which was an ancient termcap hangover.
@@ -13200,7 +13613,7 @@ f200vi-w|Liberty Freedom 200 - 132 cols for vi,
 go140|graphon go-140,
        OTbs,
        cols#80, it#8, lines#24,
-       clear=\E[H\E[2J$<10/>, cub1=^H, cuf1=\E[C,
+       clear=\E[H\E[2J$<10/>, cub1=^H, cud1=\E[B, cuf1=\E[C,
        cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
        ed=\E[J$<10/>, el=\E[K, ht=^I,
        if=/usr/share/tabset/vt100, il1=\E[L,
@@ -14196,9 +14609,9 @@ intext|Interactive Systems Corporation modified owl 1200,
 intext2|intextii|INTERACTIVE modified owl 1251,
        am, bw, ul,
        cols#80, lines#24, xmc#0,
-       bel=^G, cbt=\E[Z, clear=\E[H\E[2J, cr=^M, cud1=\E[B,
-       cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P,
-       dl1=\E[M, ed=\E[J, el=\E[K,
+       bel=^G, cbt=\E[Z, clear=\E[H\E[2J, cr=^M, cub1=\E[D,
+       cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
+       dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K,
        flash=\E[;;;;;;;;;2;;u$<200/>\E[;;;;;;;;;1;;u,
        hpa=\E[%p1%{1}%+%dG, ht=^I, ich1=\E[@, il1=\E[L, ind=\E[S,
        kbs=^H, kcub1=\ED\r, kcud1=\EB\r, kcuf1=\EC\r, kcuu1=\EA\r,
@@ -14506,7 +14919,7 @@ prism9|p9|P9|MDC Prism-9 in ANSII mode,
        sc=\E[%y,
        sgr=\E[%{0}%?%p1%p3%|%t%{7}%+%;%?%p2%t%{2}%+%;%?%p4%t%{5}%+%;%?%p6%t%{1}%+%;m%?%p8%t\E[%{32}%+%d%%{%;%?%p9%t\016%e\017%;,
        sgr0=\E[0m\017, smir=\E[4h, smso=\E[7m, smul=\E[4m,
-       tbc=\E[2g, tsl=\E[%i%p1%d%%}, vpa=\E[%i%p1%dd,
+       tbc=\E[3g, tsl=\E[%i%p1%d%%}, vpa=\E[%i%p1%dd,
 
 # p9-w: Prism-9 in 132 column mode
 # --------------------------------
@@ -15380,7 +15793,7 @@ ncr7901|ncr 7901 model,
 ndr9500|nd9500|Newbury Data 9500,
        am, bw, hs, mc5i, mir, msgr, ul, xon,
        cols#80, lines#24, wsl#79,
-       acsc=qKnImAjDwNuLtMvOlBkCxJ, bel=^G, cbt=\EI, civis=\E.0,
+       acsc=jDkClBmAnIqKtMuLvOwNxJ, bel=^G, cbt=\EI, civis=\E.0,
        clear=\E;, cnorm=\E.1, cr=^M, cub1=^H, cud1=^V, cuf1=^L,
        cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW,
        dim=\E), dl1=\ER, dsl=\Eh, ed=\EY, el=\ET,
@@ -15500,8 +15913,8 @@ uts30|sperry uts30 with cp/m@1R1,
        acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
        bel=^G, blink=\E[5m, bold=\E[1m, civis=\ER, clear=^L,
        cnorm=\ES, cr=^M, csr=\EU%p1%{32}%+%c%p2%{32}%+%c,
-       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\EB,
-       cuf=\E[%p1%dC, cuf1=\EC, cup=\E[%i%p1%d;%p2%dH,
+       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
+       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
        cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\EM,
        dl=\E[%p1%dM, dl1=\EL, ed=\E[J, el=\E[K, fsl=^M, home=\E[H,
        ht=^I, ich=\E[%p1%d@, ich1=\EO, il=\E[%p1%dL, il1=\EN,
@@ -15576,8 +15989,8 @@ dt110|Tandy DT-110 emulating ansi,
        cols#80, lines#24,
        acsc=jjkkllmmnnqqttuuvvwwxx, bel=^G, civis=\E[?25l,
        clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
-       csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[0B, cuf1=\E[C,
-       cup=\010\E[%i%p1%d;%p2%dH, cuu1=\E[0A, dch1=\E[0P,
+       csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=\E[B, cuf1=\E[C,
+       cup=\010\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[0P,
        dl1=\E[0M, ed=\E[0J, el=\E[0K, enacs=\E(B\E)0, home=\E[H,
        ht=^I, ich1=\E[0@, il1=\E[0L, ind=^J, is2=\E[?3l\E)0\E(B,
        kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kend=\E[K,
@@ -15728,7 +16141,7 @@ tek4105|tektronix 4105,
        OTbs, am, mir, msgr, ul, xenl, xt,
        cols#79, it#8, lines#29,
        acsc=, bel=^G, blink=\E[=3;<7m, bold=\E[=7;<4m, cbt=\E[Z,
-       clear=\E[2J\E[H, cr=^M, cud1=\E[1B, cuf1=\E[1C,
+       clear=\E[2J\E[H, cr=^M, cub1=\E[1D, cud1=\E[1B, cuf1=\E[1C,
        cup=\E[%i%p1%2d;%p2%2dH, cuu1=\E[1A, dch1=\E[1P,
        dim=\E[=1;<6m, dl1=\E[1M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
        il1=\E[1L, ind=\E[S, invis=\E[=6;<5, is1=\E%!1\E[m,
@@ -15847,6 +16260,15 @@ tek4106brl|tek4107brl|tek4109brl|Tektronix 4106 4107 or 4109,
        sc=\E7, sgr0=\E[m, smacs=^N, smcup=\E[?6l, smir=\E[4h,
        smkx=\E[?1h\E=, smso=\E[7;42m, smul=\E[4m, tbc=\E[3g,
 
+# Tektronix 4107/4109 interpret 4 modes using "\E%!" followed by a code:
+# 0 selects Tek mode, i.e., \E%!0
+# 1 selects ANSI mode
+# 2 selects ANSI edit-mode
+# 3 selects VT52 mode
+#
+# One odd thing about the description (which has been unchanged since the 90s)
+# is that the cursor addressing is using VT52 mode, and a few others use the
+# VT52's non-CSI versions of ANSI, e.g., \EJ.
 tek4107|tek4109|tektronix terminals 4107 4109,
        OTbs, am, mir, msgr, ul, xenl, xt,
        cols#79, it#8, lines#29,
@@ -15856,7 +16278,7 @@ tek4107|tek4109|tektronix terminals 4107 4109,
        cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\E%!3,
        dim=\E%!1\E[<0m$<2>\E%!0, ed=\EJ, el=\EK, ht=^I, ind=^J,
        kbs=^H, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
-       rev=\E%!1\E[7m$<2>\E%0, ri=\EI,
+       rev=\E%!1\E[7m$<2>\E%!0, ri=\EI,
        rmso=\E%!1\E[m$<2>\E%!0, rmul=\E%!1\E[m$<2>\E%!0,
        sgr=\E%%!1\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m$<2>\E%%!0,
        sgr0=\E%!1\E[m$<2>\E%!0, smso=\E%!1\E[7;5m$<2>\E%!0,
@@ -15893,9 +16315,9 @@ otek4112|o4112-nd|otek4113|otek4114|old tektronix 4110 series,
 tek4112|tek4114|tektronix 4110 series,
        OTbs, am, db,
        cols#80, lines#34,
-       cbt=\E[Z, clear=\E[2J\E[0;0H, cub1=^H, cuf1=\E[C,
-       cup=\E[%i%p1%d;%p2%dH, cuu1=\EM, dch1=\E[P, dl1=\E[M,
-       ed=\E[0J, el=\E[0K, ich1=\E[@, il1=\E[L,
+       cbt=\E[Z, clear=\E[2J\E[0;0H, cub1=^H, cud1=\E[B,
+       cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\EM, dch1=\E[P,
+       dl1=\E[M, ed=\E[0J, el=\E[0K, ich1=\E[@, il1=\E[L,
        ind=\E7\E[0;0H\E[M\E8, is2=\E3!1, ri=\E7\E[0;0H\E[L\E8,
        rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
 tek4112-nd|4112 not in dialog area,
@@ -15958,8 +16380,8 @@ tek4115|newer tektronix 4115 entry with more ANSI capabilities,
        kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, khome=\E[H,
        rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, rmam=\E[?7l,
        rmso=\E[m, rmul=\E[m,
-       sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
-       sgr0=\E[m, smam=\E[?7h, smso=\E[7m, smul=\E[4m, tbc=\E[2g,
+       sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m,
+       sgr0=\E[m, smam=\E[?7h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
        vpa=\E[%p1%{1}%+%dd,
 # The tek4125 emulates a vt100 incorrectly - the scrolling region
 # command is ignored.  The following entry replaces <csr> with the needed
@@ -16330,7 +16752,7 @@ apple-uterm|Ultraterm for Apple micros,
 # This entry assumes that you are using an apple with the UCSD Pascal
 # language card.  SYSTEM.MISCINFO is assumed to be the same as that
 # supplied with the standard apple except that screenwidth should be set
-# using SETUP to 80 columns.  Note that the right arrow in not mapped in
+# using SETUP to 80 columns.  Note that the right arrow is not mapped in
 # this termcap entry.  This is because that key, on the Apple, transmits
 # a ^U and would thus preempt the more useful "up" function of vi.
 #
@@ -16366,15 +16788,16 @@ apple-videx2|Apple II+ w/ Videx card (similar to Datamedia h1520),
 apple-videx3|vapple|Apple II with 80 col card,
        OTbs, am,
        cols#80, lines#24,
-       clear=\Ev, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
-       cuu1=\EA, el=\Ex, home=\EH, kcub1=\ED, kcud1=\EB, kcuf1=\EC,
-       kcuu1=\EA, kf0=\EP, kf1=\EQ, kf2=\ER, kf3=\E\s, kf4=\E!,
-       kf5=\E", kf6=\E#, kf7=\E$, kf8=\E%%, kf9=\E&, khome=\EH,
+       clear=\Ev, cub1=\ED, cud1=\EB, cuf1=\EC,
+       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, el=\Ex,
+       home=\EH, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
+       kf0=\EP, kf1=\EQ, kf2=\ER, kf3=\E\s, kf4=\E!, kf5=\E", kf6=\E#,
+       kf7=\E$, kf8=\E%%, kf9=\E&, khome=\EH,
 #From: decvax!cbosgd!cbdkc1!mww Mike Warren via BRL
 aepro|Apple II+ running ASCII Express Pro--vt52,
        OTbs,
        cols#80, lines#24,
-       clear=\014$<300/>, cuf1=\EC,
+       clear=\014$<300/>, cub1=\ED, cud1=\EB, cuf1=\EC,
        cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
        el=\EK, home=\EH,
 # UCSD addition: Yet another termcap from Brian Kantor's Micro Munger Factory
@@ -16446,17 +16869,102 @@ mac|macintosh|Macintosh with MacTerminal,
 mac-w|macterminal-w|Apple Macintosh with Macterminal in 132 column mode,
        cols#132, use=mac,
 
+# nsterm*|Apple_Terminal - AppKit Terminal.app
+#
+# Terminal.app is a Terminal emulator bundled with NeXT's NeXTStep and
+# OPENSTEP/Mach operating systems, and with Apple's Rhapsody, Mac OS X
+# Server and Mac OS X operating systems. There is also a
+# "terminal.app" in GNUStep, but I believe it to be an unrelated
+# codebase and I have not attempted to describe it here.
+#
+# For NeXTStep, OPENSTEP/Mach, Rhapsody and Mac OS X Server 1.0, you
+# are pretty much on your own. Use "nsterm-7-m" and hope for the best.
+# You might also try "nsterm-7" and "nsterm-old" if you suspect your
+# version supports color.
+#
+# To determine the version of Terminal.app you're using by running:
+#
+#     echo "$TERM_PROGRAM" "$TERM_PROGRAM_VERSION"
+#
+# For Apple_Terminal v200+, use "nsterm-16color" (a.k.a. "nsterm")
+#
+# For Apple_Terminal v71+/v100+, use "nsterm-bce".
+#
+# For Apple_Terminal v51+, use "nsterm-7-c" or "nsterm-7-c-s".
+#
+# For Apple_Terminal v41+, use "nsterm-old", or "nsterm-s".
+#
+# For all earlier versions (Apple_Terminal), try "nsterm-7-m"
+# (monochrome) or "nsterm-7" (color); "nsterm-7-m-s" and "nsterm-7-s"
+# might work too, but really you're on your own here since these
+# systems are very obsolete and I can't test them. I do welcome
+# patches, though :).
+
+# Other Terminals:
+#
+# For GNUstep_Terminal, you're probably best off using "linux" or
+# writing your own terminfo.
+
+# For MacTelnet, you're on your own. It's a different codebase, and
+# seems to be somewhere between "vt102", "ncsa" and "xterm-color".
+
+# For iTerm.app, see "iterm".
+
+#
 # The AppKit Terminal.app descriptions all have names beginning with
 # "nsterm". Note that the statusline (-s) versions use the window
 # titlebar as a phony status line, and may produce warnings during
-# compilation as a result ("tsl uses 0 parameters, expected 1".) Ignore
-# these warnings, or even ignore these entries entirely. Apps which
-# need to position the cursor or do other fancy stuff inside the status
-# line won't work with these entries. They're primarily useful for
-# programs like Pine which provide simple notifications in the status
-# line. Please note that non-ASCII characters don't work right in the
-# status line, since Terminal.app incorrectly interprets their Unicode
-# codepoints as MacRoman codepoints.
+# compilation as a result ("tsl uses 0 parameters, expected 1".)
+# Ignore these warnings, or even ignore these entries entirely. Apps
+# which need to position the cursor or do other fancy stuff inside the
+# status line won't work with these entries. They're primarily useful
+# for programs like Pine which provide simple notifications in the
+# status line. Please note that non-ASCII characters don't work right
+# in the status line, since Terminal.app incorrectly interprets their
+# Unicode codepoints as MacRoman codepoints (in earlier Mac OS X
+# versions) or only accepts status lines consisting entirely of
+# characters from the first 256 Unicode positions (including C1 but
+# not C0 or DEL.)
+#
+# The Mythology* of AppKit Terminal.app:
+#
+# In the days of NeXTSTep 0.x and 1.x there were two incompatible
+# bundled terminal emulators, Shell and Terminal. Scott Hess wrote a
+# shareware replacement for Terminal called "Stuart" which NeXT bought
+# and used as the basis for the Terminal.app in NeXTstep 2+,
+# OPENSTEP/Mach, Apple Rhapsody, Mac OS X Server 1.0, and Mac OS X. I
+# don't know the TERM_PROGRAM and TERM_PROGRAM_VERSION settings or
+# capabilities for the early versions, but I believe that the
+# TERM_PROGRAM_VERSION may have been reset at some point.
+#
+# The early versions were tailored to the NeXT character set. Sometime
+# after the Apple aquisition the encoding was swiched to MacRoman
+# (initally with serious altcharset bugs due to incomplete conversion
+# of the old NeXT code,) and then later to UTF-8. Alos sometime during
+# or just prior to the early days of Mac OS X, the Terminal grew ANSI
+# 8-color support (initially buggy when combined with attributes, but
+# that was later fixed.) More recently, around Mac OS X version 10.3
+# or so (Terminal.app v100+) xterm-like 16-color support was added. In
+# some versions (for instance 133-1 which shipped with Mac OS X
+# version 10.4) this suffered from the <bce> bug, but that seems to
+# have been fixed in Mac OS X version 10.5 (Terminal.app v240.2+).
+#
+# In the early days of Mac OS X the terminal was fairly buggy and
+# would routinely crash under load. Many of these bugs seem to have
+# been fixed around Mac OS X version 10.3 (Terminal.app v100+) but
+# some may still remain. This change seems to correspond to
+# Terminal.app reporting "xterm-color" as $TERM rather than "vt100" as
+# it did previously.
+#
+# * This may correspond with what actually happened, but I don't
+#   know. It is based on guesswork, hearsay, private correspondence,
+#   my faulty memory, and the following online sources and references:
+#
+# [1] "Three Scotts and a Duane" by Simson L. Garfinkel
+# http://www.nextcomputers.org/NeXTfiles/Articles/NeXTWORLD/93.8/93.8.Dec.Community1.html
+#
+# [2] NeXTSTEP entry from Wikipedia, the free encyclopedia
+# https://secure.wikimedia.org/wikipedia/en/wiki/Nextstep
 #
 # * Renamed the AppKit Terminal.app entry from "Apple_Terminal" to
 #   "nsterm" to comply with the name length and case conventions and
@@ -16546,7 +17054,7 @@ mac-w|macterminal-w|Apple Macintosh with Macterminal in 132 column mode,
 #     export TERM
 #     if [ :"$TERM_PROGRAM_VERSION" = :41 ]
 #     then
-#         TERM="nsterm"
+#         TERM="nsterm-old"
 #     else
 #         TERM="nsterm-c-7"
 #     fi
@@ -16557,7 +17065,7 @@ mac-w|macterminal-w|Apple Macintosh with Macterminal in 132 column mode,
 # if ( $?TERM && $?TERM_PROGRAM && $?TERM_PROGRAM_VERSION) then
 #     if ( :"$TERM" == :"vt100" && :"$TERM_PROGRAM" == :"Apple_Terminal" ) then
 #          if ( :"$TERM_PROGRAM_VERSION" == :41 ) then
-#              setenv TERM "nsterm"
+#              setenv TERM "nsterm-old"
 #          else
 #              setenv TERM "nsterm-c-7"
 #          endif
@@ -16574,25 +17082,25 @@ nsterm+7|AppKit Terminal.app v41+ basic capabilities w/ASCII charset,
        cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
        dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
        home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J,
-       kbs=\177, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
-       kent=\EOM, rc=\E8, rev=\E[7m, ri=\EM, rmam=\E[?7l,
-       rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
+       invis=\E[8m, kbs=\177, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
+       kcuu1=\EOA, kent=\EOM, rc=\E8, rev=\E[7m, ri=\EM,
+       rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
        rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
-       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m,
-       sgr0=\E[m\017, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
+       sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
        smul=\E[4m, tbc=\E[3g, use=vt100+enq, use=vt100+pfkeys,
 
 nsterm+acs|AppKit Terminal.app v41+ basic capabilities w/VT100 alternate-charset,
        acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
        enacs=\E(B\E)0, rmacs=^O,
-       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
-       smacs=^N, use=nsterm+7,
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smacs=^N, use=nsterm+7,
 
 nsterm+mac|AppKit Terminal.app v41+ basic capabilities w/MacRoman alternate-charset,
-       acsc=0#`\327a\:f\241g\261h#i\360jjkkllmmnno\370p\370q\321rrssttuuvvwwxxy\262z\263{\271|\255}\243~\245+\335-\366\,\334.\377,
+       acsc=+\335\,\334-\366.\3770#`\327a\:f\241g\261h#i\360jjkkllmmnno\370p\370q\321rrssttuuvvwwxxy\262z\263{\271|\255}\243~\245,
        enacs=\E(B\E)0, rmacs=^O,
-       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
-       smacs=^N, use=nsterm+7,
+       sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+       sgr0=\E[m\017, smacs=^N, use=nsterm+7,
 
 nsterm+s|AppKit Terminal.app v41+ status-line (window titlebar) support,
        hs,
@@ -16653,7 +17161,7 @@ nsterm-m|AppKit Terminal.app v41+ w/MacRoman charset (monochrome),
 nsterm-m-s|AppKit Terminal.app v41+ w/MacRoman charset (monochrome w/statusline),
        use=nsterm+s, use=nsterm+mac,
 
-nsterm|Apple_Terminal|AppKit Terminal.app v41+ w/MacRoman charset (color),
+nsterm-old|AppKit Terminal.app v41+ w/MacRoman charset (color),
        use=nsterm+c41, use=nsterm+mac,
 
 nsterm-c|AppKit Terminal.app v51+ w/MacRoman charset (full color),
@@ -16665,17 +17173,66 @@ nsterm-s|AppKit Terminal.app v41+ w/MacRoman charset (color w/statusline),
 nsterm-c-s|AppKit Terminal.app v51+ w/MacRoman charset (full color w/statusline),
        use=nsterm+s, use=nsterm+c, use=nsterm+mac,
 
+# In Mac OS X version 10.5 the format of the preferences has changed
+# and a new, more complex technique is needed, e.g.,
+#
+#       python -c 'import sys,objc;NSUserDefaults=objc.lookUpClass(
+#       "NSUserDefaults");ud=NSUserDefaults.alloc();
+#       ud.init();prefs=ud.persistentDomainForName_(
+#       "com.apple.Terminal");prefs["Window Settings"][
+#       prefs["Default Window Settings"]]["TerminalType"
+#       ]=sys.argv[1];ud.setPersistentDomain_forName_(prefs,
+#       "com.apple.Terminal")' nsterm-16color
+#
+# and it is still not settable from the preferences dialog. This is
+# tracked under rdar://problem/7365108 and rdar://problem/7365134
+# in Apple's bug reporter.
+nsterm-16color|AppKit Terminal.app v240.2+ with Mac OS X version 10.5,
+       bw@, mir, npc,
+       civis=\E[?25l, cnorm=\E[?25h, dch=\E[%p1%dP, dch1=\E[P,
+       flash=\E[?5h$<200/>\E[?5l, hpa=\E[%i%p1%dG,
+       ich=\E[%p1%d@, ich1=\E[@, kdch1=\E[3~, kend=\E[F,
+       kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
+       kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
+       kf18=\E[22~, kf19=\E[33~, kf20=\E[34~, kf5=\E[15~,
+       kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\E[H,
+       knp=\E[6~, kpp=\E[5~, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l,
+       smcup=\E7\E[?47h, smir=\E[4h, vpa=\E[%i%p1%dd,
+       use=nsterm-c-s-acs,
 
+# The versions of Terminal.app in Mac OS X version 10.3.x seem to have
+# the background color erase bug. The newer version 240.2 in Mac OS X
+# version 10.5 does not.
+#
 # This entry is based on newsgroup comments by Alain Bench, Christian Ebert,
 # and D P Schreber comparing to nsterm-c-s-acs.
 #
-# D P Schreber notes that $TERM can be set in Terminal.app, e.g.,
-#      defaults write com.apple.Terminal TermCapString nsterm-c-s-acs
+# In Mac OS X version 10.4 and earlier, D P Schreber notes that $TERM
+# can be set in Terminal.app, e.g.,
+#
+#      defaults write com.apple.Terminal TermCapString nsterm-bce
+#
 # and that it is not set in Terminal's preferences dialog.
-nsterm-16color|AppKit Terminal.app v100.1.8 with MacOS X 10.3.9,
-       kdch1=\E[3~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
-       kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
-       knp=\E[6~, kpp=\E[5~, use=nsterm-c-s-acs,
+nsterm-bce|AppKit Terminal.app v71+/v100.1.8+ with Mac OS X version 10.3/10.4 (bce),
+       bce, bw, use=nsterm-16color,
+
+# This is an alias which should always point to the "current" version
+nsterm|Apple_Terminal|AppKit Terminal.app,
+       use=nsterm-16color,
+
+# iTerm.app from http://iterm.sourceforge.net/ is an alternative (and
+# more featureful) terminal emulator for Mac OS X. It is similar
+# enough in capabilities to nsterm-16color that I have derived this
+# description from that one, but as far as I know they share no code.
+# Many of the features are user-configurable, but I attempt only to
+# describe the default configuration.
+#
+# NOTE: When tack tests (csr) + (nel) iTerm.app crashes, so (csr) is
+# disabled.
+iTerm.app|iTerm.app terminal emulator for Mac OS X,
+       bce, bw@, ccc@,
+       csr@, initc@, kend=\EOF, khome=\EOH, use=xterm+256color,
+       use=nsterm-16color,
 
 # xnuppc - Darwin PowerPC Console (a.k.a. "darwin")
 #
@@ -16785,7 +17342,7 @@ xnuppc+basic|Darwin PowerPC Console basic capabilities,
        rmul=\E[m, rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
        sc=\E7,
        sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
-       sgr0=\E[m\017, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
+       sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
        smul=\E[4m, tbc=\E[3g, use=vt100+keypad,
 
 xnuppc+c|Darwin PowerPC Console ANSI color support,
@@ -16986,42 +17543,6 @@ trs16|trs-80 model 16 console,
        lf7=f8, mc4=\E]+, mc5=\E]=, rmacs=\ERg, rmso=\ER@, sgr0=\ER@,
        smacs=\ERG, smso=\ERD,
 
-#### Atari ST
-#
-
-# From: Simson L. Garfinkel <simsong@media-lab.mit.edu>
-atari|atari st,
-       OTbs, am,
-       cols#80, it#8, lines#25,
-       clear=\EH\EJ, cub1=\ED, cud1=\EB, cuf1=\EC,
-       cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dl1=\EM,
-       ed=\EJ, el=\EK, ht=^I, il1=\EL, kcub1=\ED, kcud1=\EB,
-       kcuf1=\EC, kcuu1=\EA, ri=\EI, rmso=\Eq, sgr0=\Eq, smso=\Ep,
-# UniTerm terminal program for the Atari ST:  49-line VT220 emulation mode
-# From: Paul M. Aoki <aoki@ucbvax.berkeley.edu>
-uniterm|uniterm49|UniTerm VT220 emulator with 49 lines,
-       lines#49,
-       is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;49r\E[49;1H,
-       use=vt220,
-# MiNT VT52 emulation. 80 columns, 25 rows.
-# MiNT is Now TOS, the operating system which comes with all Ataris now
-# (mainly Atari Falcon). This termcap is for the VT52 emulation you get
-# under tcsh/zsh/bash/sh/ksh/ash/csh when you run MiNT in `console' mode
-# From: Per Persson <pp@gnu.ai.mit.edu>, 27 Feb 1996
-st52|Atari ST with VT52 emulation,
-       am, km,
-       cols#80, lines#25,
-       bel=^G, civis=\Ef, clear=\EH\EJ, cnorm=\Ee, cr=^M, cub1=\ED,
-       cud1=\EB, cuf1=\EC, cup=\EY%p1%{32}%+%c%p2%{32}%+%c,
-       cuu1=\EA, dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, il1=\EL,
-       ind=^J, ka1=\E#7, ka3=\E#5, kb2=\E#9, kbs=^H, kc1=\E#1,
-       kc3=\E#3, kclr=\E#7, kcub1=\E#K, kcud1=\E#P, kcuf1=\E#M,
-       kcuu1=\E#H, kf0=\E#D, kf1=\E#;, kf2=\E#<, kf3=\E#=, kf4=\E#>,
-       kf5=\E#?, kf6=\E#@, kf7=\E#A, kf8=\E#B, kf9=\E#C, khome=\E#G,
-       kil1=\E#R, kind=\E#2, kri=\E#8, lf0=f10, nel=^M^J, rc=\Ek,
-       ri=\EI, rmcup=, rmso=\Eq, rs1=\Ez_\Eb@\EcA, sc=\Ej, sgr0=\Eq,
-       smcup=\Ee, smso=\Ep,
-
 #### Commodore Business Machines
 #
 # Formerly located in West Chester, PA; went spectacularly bust in 1994
@@ -17229,50 +17750,31 @@ osexec|Osborne executive,
 # even as single processes under SunOS and the Macintosh OS.
 #
 
-# This is the entry matching the distributed ncurses patch;
-# F11, F12, <5>, Numeric Plus and Minus are not available
+# See
+#      http://www.minix3.org/manpages/man4/console.4.html
 minix|minix console (v3),
-       am, xenl, 
-       cols#80, it#8, lines#25, 
-       bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[0J, cr=^M, 
-       cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B, 
-       cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, 
-       cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, 
-       dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[K, home=\E[H, ht=^I, 
-       ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, 
-       is2=\E[0m, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, 
-       kcuu1=\E[A, kdch1=\177, kend=\E[Y, kf0=\E[21~, kf1=\E[11~, 
-       kf2=\E[12~, kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, 
-       kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kf10=\E[21~, 
-       kf11=\E[11;2~, kf12=\E[12;2~, kf13=\E[13;2~, kf14=\E[14;2~, 
-       kf15=\E[15;2~, kf16=\E[17;2~, kf17=\E[18;2~, kf18=\E[19;2~, 
-       kf19=\E[20;2~, kf20=\E[21;2~, kf21=\E[11;5~, kf22=\E[12;5~, 
-       kf23=\E[13;5~, kf24=\E[14;5~, kf25=\E[15;5~, kf26=\E[17;5~, 
-       kf27=\E[18;5~, kf28=\E[19;5~, kf29=\E[20;5~, kf30=\E[21;5~, 
-       kf31=\E[11;6~, kf32=\E[12;6~, kf33=\E[13;6~, kf34=\E[14;6~, 
-       kf35=\E[15;6~, kf36=\E[17;6~, kf37=\E[18;6~, kf38=\E[19;6~, 
-       kf39=\E[20;6~, kf40=\E[21;6~, khome=\E[H, kich1=\E[@, 
-       knp=\E[U, kpp=\E[V, nel=^M^J, rev=\E[7m, ri=\EM, 
-       rmso=\E[0m, rmul=\E[0m, sgr0=\E[0m, smso=\E[7m, smul=\E[4m, 
-       colors#8, pairs#64, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, 
-       acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, 
+       use=ecma+color, use=minix-1.7,
+
+# See
+#      http://www.minix-vmd.org/pub/Minix-vmd/1.7.0/wwwman/man4/console.4.html
 # This is the entry provided with minix 1.7.4, with bogus :ri: removed.
-minix-old2|minix console (v1.7),
+minix-1.7|minix console (v1.7),
        am, xenl,
        cols#80, it#8, lines#25,
        bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[0J, cr=^M,
        cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
        cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
        cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
-       dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[K, home=\E[H, ht=^I,
-       ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
-       is2=\E[0m, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
-       kcuu1=\E[A, kf0=\E[Y, kf1=\E[V, kf2=\E[U, kf3=\E[T, kf4=\E[S,
-       kf5=\E[G, khome=\E[H, lf0=End, lf1=PgUp, lf2=PgDn, lf3=Num +,
-       lf4=Num -, lf5=Num 5, nel=^M^J, rev=\E[7m, ri=\EM,
-       rmso=\E[0m, rmul=\E[0m, sgr0=\E[0m, smso=\E[7m, smul=\E[4m,
+       dl=\E[%p1%dM, dl1=\E[M, ed=\E[0J, el=\E[K, el1=\E[2K,
+       home=\E[H, ht=^I, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
+       il1=\E[L, ind=^J, is2=\E[0m, kbs=^H, kcub1=\E[D, kcud1=\E[B,
+       kcuf1=\E[C, kcuu1=\E[A, kf0=\E[Y, kf1=\E[V, kf2=\E[U,
+       kf3=\E[T, kf4=\E[S, kf5=\E[G, khome=\E[H, lf0=End, lf1=PgUp,
+       lf2=PgDn, lf3=Num +, lf4=Num -, lf5=Num 5, nel=^M^J,
+       rev=\E[7m, ri=\EM, rmso=\E[0m, rmul=\E[0m, sgr0=\E[0m,
+       smso=\E[7m, smul=\E[4m,
 # Corrected Jan 14, 1997 by Vincent Broman <broman@nosc.mil>
-minix-old|minix-old15|minix console (v1.5),
+minix-old|minix-1.5|minix console (v1.5),
        xon,
        cols#80, it#8, lines#25,
        bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[0J, cr=^M,
@@ -17678,7 +18180,7 @@ tws-generic|dku7102|Bull Questar tws terminals,
        rmul=\E[m, rs2=\E[?=h\Ec, s0ds=^O, s1ds=^N,
        sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
        sgr0=\E[m\017, smacs=^N, smcup=\E[?>h\EPY99\:98\E\\,
-       smir=\E[4h, smso=\E[0;7m, smul=\E[0;4m, tbc=\E[2g,
+       smir=\E[4h, smso=\E[0;7m, smul=\E[0;4m, tbc=\E[3g,
        tsl=\EPY99\:98\E\\\E[0;98v\E[2;7m,
 tws2102-sna|dku7102-sna|BULL Questar tws2102 for SNA,
        dsl=\E[0;98v\E[2J\E[v, fsl=\E[v, is3=\Eb, tsl=\E[0;98v,
@@ -17879,8 +18381,9 @@ bq300-8|Bull vt320 full 8 bits 80 columns,
        acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
        bel=^G, blink=\2335m, bold=\2331m, civis=\233?25l,
        clear=\233H\233J, cnorm=\233?25h, cr=^M,
-       csr=\233%i%p1%d;%p2%dr, cub=\233%p1%dD, cud=\233%p1%dB,
-       cuf=\233%p1%dC, cup=\233%i%p1%d;%p2%dH, cuu=\233%p1%dA,
+       csr=\233%i%p1%d;%p2%dr, cub=\233%p1%dD, cub1=\2331D,
+       cud=\233%p1%dB, cud1=\2331B, cuf=\233%p1%dC, cuf1=\2331C,
+       cup=\233%i%p1%d;%p2%dH, cuu=\233%p1%dA, cuu1=\2331A,
        dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM,
        dsl=\2331$}\2332$~\n\2330$}, ech=\233%p1%dX, ed=\233J,
        el=\233K, el1=\2331K, enacs=\E(B\E)0,
@@ -18421,7 +18924,7 @@ h19-us|h19us|h19-smul|heathkit w/keypad shifted/underscore cursor,
 h19|heath|h19-b|heathkit|heath-19|z19|zenith|heathkit h19,
        OTbs, am, eslok, hs, mir, msgr,
        cols#80, it#8, lines#24,
-       acsc=~\^x`qanbkcjdmelfgg+hai.kwsutvutvozs{, bel=^G,
+       acsc=+h.kaiggjdkclfmenbozqas{tvutvuwsx`~\^, bel=^G,
        clear=\EE, cnorm=\Ey4, cr=^M, cub1=^H, cud1=\EB, cuf1=\EC,
        cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, cvvis=\Ex4,
        dch1=\EN, ed=\EJ, el=\EK, fsl=\Ek\Ey5, home=\EH, ht=^I, ind=^J,
@@ -18559,7 +19062,7 @@ z100|h100|z110|z-100|h-100|heath/zenith z-100 pc with color monitor,
 z100bw|h100bw|z110bw|z-100bw|h-100bw|heath/zenith z-100 pc,
        OTbs, OTpt, mir, msgr,
        OTkn#10, cols#80, it#8, lines#24,
-       acsc=~\^x`qanbkcjdmelfgg+hai.kwsutvutvozs{,
+       acsc=+h.kaiggjdkclfmenbozqas{tvutvuwsx`~\^,
        clear=\EE$<5*/>, cnorm=\Ey4, cub1=^H, cud1=\EB, cuf1=\EC,
        cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<1*/>, cuu1=\EA,
        cvvis=\Ex4, dch1=\EN$<1*/>, dl1=\EM$<5*/>, ed=\EJ, el=\EK,
@@ -18607,7 +19110,7 @@ ims950-rv|ims tvi950 rev video,
 ims-ansi|ultima2|ultimaII|IMS Ultima II,
        OTbs, am,
        cols#80, it#8, lines#24,
-       clear=\E[H\E[2J, cub1=^H, cud1=\ED,
+       clear=\E[H\E[2J, cub1=^H, cud1=\ED, cuf1=\EC,
        cup=\E[%i%p1%2d;%p2%2dH, cuu1=\EM, ed=\E[0J, el=\E[0K,
        ht=^I, if=/usr/share/tabset/vt100,
        is2=\E[m\E[>14l\E[?1;?5;20l\E>\E[1m\r, kcub1=\E[D,
@@ -18718,9 +19221,9 @@ modgraph|mod24|modgraph terminal emulating vt100,
 modgraph2|modgraph gx-1000 80x24 with keypad not enabled,
        am, da, db,
        cols#80, it#8, lines#24,
-       clear=\EH\EJ$<50/>, cub1=^H, cuf1=\EC$<2/>,
-       cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<5/>, cuu1=\EA$<2/>,
-       ed=\EJ$<50/>, el=\EK$<3/>, ht=^I,
+       clear=\EH\EJ$<50/>, cub1=^H, cud1=\EB$<2/>,
+       cuf1=\EC$<2/>, cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<5/>,
+       cuu1=\EA$<2/>, ed=\EJ$<50/>, el=\EK$<3/>, ht=^I,
        is2=\E<\E\^5;2s\E\^7;1s\E[3g\E\^11;9s\E\^11;17s\E\^11;25s\E\^11;33s\E\^11;41s\E\^11;49s\E\^11;57s\E\^11;65s\E\^11;73s\E\^11;81s\E\^11;89s\E\^12;0s\E\^14;2s\E\^15;9s\E\^25;1s\E\^9;1s\E\^27;1,
        ri=\EI$<5/>,
 #
@@ -18791,9 +19294,9 @@ mt70|mt-70|Morrow MD-70; native Morrow mode,
 ex155|Motorola Exorterm 155,
        OTbs, am, bw,
        OTkn#5, OTug#1, cols#80, lines#24,
-       cbt=\E[, clear=\EX, cud1=\EB, cuf1=\ED,
-       cup=\EE%p1%{32}%+%c%p2%{32}%+%c, ed=\ET, el=\EU,
-       home=\E@, ht=\EZ, kbs=^H, kcbt=\E[, kclr=\EX, kcub1=^H,
+       cbt=\E[, clear=\EX, cub1=\ED, cud1=\EB, cuf1=\EC,
+       cup=\EE%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\ET,
+       el=\EU, home=\E@, ht=\EZ, kbs=^H, kcbt=\E[, kclr=\EX, kcub1=^H,
        kcud1=^J, kcuf1=^L, kcuu1=^K, ked=\ET, kel=\EU, khome=\E@,
        rmso=\Ec\ED, rmul=\Eg\ED, smso=\Eb\ED, smul=\Ef\ED,
 
@@ -19089,7 +19592,7 @@ t1061f|teleray 1061 with fast PROMs,
 t10|teleray 10 special,
        OTbs, km, xhp, xt,
        cols#80, it#8, lines#24, xmc#2,
-       clear=\Ej$<30/>, cub1=^H, cuf1=\EC,
+       clear=\Ej$<30/>, cub1=^H, cud1=\EB, cuf1=\EC,
        cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, dch1=\EQ,
        dl1=\EM, ed=\EJ, el=\EK, home=\EH, ht=^I, ich1=\EP, il1=\EL,
        ind=\Eq, pad=\0, ri=\Ep, rmso=\ER@, rmul=\ER@, smso=\ERD,
@@ -19811,7 +20314,7 @@ teletec|Teletec Datascreen,
 v3220|LANPAR Vision II model 3220/3221/3222,
        OTbs, am, mir, xenl,
        cols#80, it#8, lines#24,
-       clear=\E[H\E[J, cub1=^H, cuf1=\E[C,
+       clear=\E[H\E[J, cub1=^H, cud1=\E[B, cuf1=\E[C,
        cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch1=\E[P, dl1=\E[M,
        ed=\E[J, el=\E[K, ht=^I, il1=\E[L,
        is2=\E>\E[?3l\E[?7h\E[?8h\E[p, kcub1=\E[D, kcud1=\E[B,
@@ -21732,13 +22235,126 @@ v3220|LANPAR Vision II model 3220/3221/3222,
 #      * add Eterm-256color, Eterm-88color -TD
 #      * add rxvt-88color -TD
 #
-# The following sets edit modes for GNU EMACS.
-# Local Variables:
-# fill-prefix:"\t"
-# fill-column:75
-# comment-column:0
-# comment-start-skip:"^#+"
-# comment-start:"# "
-# compile-command:"tic -c terminfo.master"
-# End:
+# 2008-10-12
+#      * add teraterm4.59 entry, use that as primary teraterm entry, rename
+#        original to teraterm2.3 -TD
+#      * update "gnome" to 2.22.3 -TD
+#      * update "konsole" to 1.6.6 -TD
+#      * add "aterm" -TD
+#      * add "linux2.6.26" -TD
+#
+# 2008-11-15
+#      * change several \E[2g (clear tab at current column) to \E[3g
+#        (clear all tabs) to match definition for tbc capability -TD
+#
+# 2008-11-29
+#      * add eterm-color -TD
+#
+# 2009-01-10
+#      * add screen.Eterm -TD
+#
+# 2009-03-28
+#      * correct typo in pfkey of ansi.sys-old
+#        (report by Kalle Olavi Niemitalo)
+#      * move function- and cursor-keys from emx-base to ansi.sys, and create
+#        a pfkey capability which handles F1-F48 -TD
+#
+# 2009-05-02
+#      * add vwmterm entry (Bryan Christ)
+#
+# 2009-09-19
+#      * change ncv and op capabilities in sun-color to match Sun's entry for
+#        this (report by Laszlo Peter)
+#      * improve interix smso by using reverse rather than bold (report by
+#        Kristof Zelechovski).
+#
+# 2009-10-03
+#      * remove unnecessary kcan assignment to ^C from putty (Sven Joachim)
+#      * add linux-16color (Benjamin Sittler)
+#      * correct initc capability of linux-c-nc end-of-range (Benjamin Sittler)
+#      * similar change for dg+ccc and dgunix+ccc (Benjamin Sittler)
+#      * add ccc and initc capabilities to xterm-16color -TD
+#
+# 2009-10-31
+#      * updated nsterm* entries (Benjamin Sittler, prompted by GenToo #206201)
+#
+# 2009-12-12
+#      * updated nsterm* entries (Benjamin Sittler, Emanuele Giaquinta)
+#
+# 2009-12-12
+#      * add bw (auto-left-margin) to nsterm* entries (Benjamin Sittler)
+#      * rename minix to minix-1.7, add minix entry for Minux3 -TD
+#
+# 2009-12-26
+#      * add bterm (bogl 0.1.18) -TD
+#      * minor fix to rxvt+pcfkeys -TD
+#
+# 2010-02-06
+#      * update mrxvt to 0.5.4, add mrxvt-256color -TD
+#
+# 2010-02-13
+#      * add several screen-bce.XXX entries -TD
+#
+# 2010-02-23
+#      * modify screen-bce.XXX entries to exclude ech, since screen's color
+#        model does not clear with color for that feature -TD
+#
+# 2010-03-20
+#      * rename atari and st52 to atari-old, st52-old, use newer entries from
+#        FreeMiNT by Guido Flohr (from patch/report by Alan Hourihane).
+#
+# 2010-06-12
+#      * add mlterm+256color entry -TD
+#
+# 2010-07-17
+#      * add hard-reset for rs2 to wsvt25 to help ensure that reset ends
+#        the alternate character set (patch by Nicholas Marriott)
+#
+# 2010-08-28
+#      * improve acsc for vt52 (Benjamin Sittler)
+#      * modify nsterm entries for consistent sgr/sgr0 -TD
+#      * modify xnuppc entries for consistent sgr/sgr0 -TD
+#      * add invis to tek4115 sgr -TD
+#
+# 2010-09-11
+#      * reformat acsc strings to canonical format -TD
+#
+# 2010-09-25
+#      * add "XT" capability to entries for terminals that support both
+#        xterm-style mouse- and title-controls, for "screen" which
+#        special-cases TERM beginning with "xterm" or "rxvt" -TD
+#
+# 2010-10-02
+#      * fill in no-parameter forms of cursor-movement where a parameterized
+#        form is available -TD
+#      * fill in missing cursor controls where the form of the controls is
+#        ANSI -TD
+#      * add parameterized cursor-controls to linux-basic (report by Dae) -TD
+#
+# 2010-10-09
+#      * correct comparison used for setting 16-colors in linux-16color
+#        entry (Novell #644831) -TD
+#      * improve linux-16color entry, using "dim" for color-8 which makes it
+#        gray rather than black like color-0 -TD
+#
+# 2010-11-20
+#      * make "vte" the principal entry defining "gnome", since GNOME terminal
+#        is merely one of several terminals whose behavior is provided by this
+#        library -TD
+#
+# 2010-11-27
+#      * fix typo in rmso for tek4106 -Goran Weinholt
+#
+# 2010-12-11
+#      * suppress ncv in screen entry, allowing underline -Alejandro R. Sedeno
+#      * also suppress ncv in konsole-base -TD
+#
+# 2011-02-05
+#      * add U8 feature to denote entries for terminal emulators which do not
+#        support VT100 SI/SO when processing UTF-8 encoding -TD
+#      * add xterm-utf8 as a demo of the U8 feature -TD
+#
+# 2011-02-20
+#      * add cons25-debian entry (Brian M Carlson, Debina #607662).
+#
 ######## SHANTIH!  SHANTIH!  SHANTIH!
index 24b050dde0a1eb806cee4bbcf5a64499a3dc5148..5d236c72f6efbbd8d142a2e175ebc98b9d51970d 100644 (file)
@@ -7,8 +7,6 @@ HOST_SRCS=      compile.c hash.c
 TERMINFODIR=   ${NETBSDSRCDIR}/lib/libterminfo
 
 .include "${.CURDIR}/../Makefile.host"
-.ifndef __MINIX
 .include "${TERMINFODIR}/Makefile.hash"
-.endif
 
 .PATH:         ${TERMINFODIR}