History log of /src/lib/libterminfo/term_private.h |
Revision | | Date | Author | Comments |
1.22 |
| 23-Sep-2025 |
js | Also include "nbtool_config.h" if HAVE_NBTOOL_CONFIG_H is defined
|
1.21 |
| 23-Sep-2025 |
js | Wrap <sys/endian.h> include in #ifdef HAVE_SYS_ENDIAN_H
The real issue is that on Darwin, <sys/endian.h> does exist and has be16dec and friends. However, since they do exist, they are not declared by "compat_defs.h". Therefore, if <sys/endian.h> exists, we need to include it. In case <sys/endian.h> does not have be16dec and friends, including it is harmless and "compat_defs.h" will declare them. And if we don't have <sys/endian.h>, they are always declared by "compat_defs.h", as the configure check depends on <sys/endian.h>.
|
1.20 |
| 23-Sep-2025 |
js | Add missing include to fix building on Darwin
|
1.19 |
| 21-Jun-2020 |
roy | libterminfo: cast to uint16/32_t before conversion to preserve negativity
Otherwise the ABSENT_NUMERIC(-1) or CANCELLED_NUMERIC(-2) will be converted incorrectly to size_t and then down to uint16/32_t. Picked up by DIAGNOSTIC builds.
Thanks to Michael Forney for the fix for PR lib/52293.
|
1.18 |
| 29-Mar-2020 |
roy | terminfo: Promote a terminfo description to v3 when required
Blindly scanning the capabilities for # and checking that the following number is bigger than a short isn't reliable because this could be a string value:
SomeString#1234
Instead, if we process the numeric as normal and if it's value is too big for v1 then promote the record to v3.
|
1.17 |
| 29-Mar-2020 |
roy | terminfo: allow _ti_getname to convert from and to any version
|
1.16 |
| 29-Mar-2020 |
roy | terminfo: Clamp numeric bounds to storage not API.
While here, fix decoding of numeric -1 stored in uint16_t to still be -1.
|
1.15 |
| 28-Mar-2020 |
roy | Whitespace
|
1.14 |
| 27-Mar-2020 |
christos | Introduce a bunch of inline functions and utilities to avoid code duplication.
|
1.13 |
| 27-Mar-2020 |
christos | As described in tech-userlevel: - Modify the writing code to only write entries in the new format for the terminal descriptions that require it. - Store new format entries as <name>@v3 - Store old format entries with clamped values as <name> for backwards compatibility - Lookup first <name>@v3 and then <name> if that is not found. - Don't create terminfo2 anymore; old programs keep working with clamped entries, and new programs be able to use the wide fields with using the original db file.
|
1.12 |
| 13-Mar-2020 |
roy | terminfo: promote numeric parameters from short to int
POSIX mandates implementations must support upto a short but may exceed it. When NetBSD terminfo was implemented, no terminfo description used over a short, but because ncurses has supported ints for some time, some now do.
Infact, such a terminfo description was imported where colour pairs for screen-256color went up to 65536 which exposed a bug in the existing implementation where it set to zero. Because the number might mean something more than a range, we need to be able to store it accurately.
This requires a version bump because whilst the API hasn't changed thanks to C int promotion, the ABI has. Also the underlying database structure has changed as well - we now store the numeric paramter inside a uint32_t field rather than a uint16_t one. Whilst this change can still read the old style database, the old one cannot read the new one and thus we now maintain the database as terminfo2.cdb, leaving the old library and database alone so old programs still work fine.
libcurses, libfrom, libmenu and libpanel have also been bumped to accomoate this change.
|
1.11 |
| 24-Jan-2013 |
roy | branches: 1.11.30; Move the strings vs long analysis to a private function, but allow tput(1) to use it so we can work with string parameters to capabilities.
|
1.10 |
| 03-Jun-2012 |
joerg | branches: 1.10.2; Switch terminfo(3) to cdb(5).
|
1.9 |
| 03-Oct-2011 |
roy | branches: 1.9.2; 1.9.4; Remove _ti_freeterm as consumers should just use del_curterm.
|
1.8 |
| 22-Sep-2010 |
roy | Our API just uses typedefs, so don't use the struct symbol which will avoid any potential conflicts with userland.
|
1.7 |
| 02-Mar-2010 |
roy | Use _ti_get_token instead of strsep when parsing termcap entries. This allows us to handle \E\ as a valid sequence.
|
1.6 |
| 22-Feb-2010 |
roy | libterminfo can now compile a single terminfo description which allows $TERMINFO to be a terminfo description as well as a file reference.
This enables the user to modify the terminfo description on read-only media.
|
1.5 |
| 11-Feb-2010 |
roy | Embed ansi, dumb, vt100, vt220 and wsvt25 compiled terminal descriptions into libterminfo. Constify some foo.
|
1.4 |
| 05-Feb-2010 |
he | More adaptation for ports with unsigned char as char.
|
1.3 |
| 05-Feb-2010 |
roy | Store the aliases against the entry, so that infocmp can reproduce them. Handy for creating smaller terminfo databases.
|
1.2 |
| 03-Feb-2010 |
snj | Fix some typos and spelling errors.
|
1.1 |
| 03-Feb-2010 |
roy | Import my terminfo implementation. This uses the ncurses terminal definitions.
OK: core@, jdc@
|
1.9.4.2 |
| 14-Mar-2013 |
riz | Pull up following revision(s) (requested by roy in ticket #835): lib/libterminfo/terminfo.3: revision 1.9 lib/libterminfo/term.h: revision 1.13 lib/libterminfo/term.h: revision 1.14 usr.bin/tput/Makefile: revision 1.11 lib/libterminfo/terminfo.3: revision 1.10 lib/libterminfo/genman: revision 1.5 lib/libterminfo/term_private.h: revision 1.11 usr.bin/tput/tput.c: revision 1.23 usr.bin/tput/tput.c: revision 1.24 usr.bin/tput/tput.c: revision 1.25 lib/libterminfo/tparm.c: revision 1.11 lib/libterminfo/Makefile.hash: revision 1.7 usr.bin/tput/tput.c: revision 1.26 lib/libterminfo/tparm.c: revision 1.12 lib/libterminfo/tparm.c: revision 1.13 lib/libterminfo/tparm.c: revision 1.14 lib/libterminfo/terminfo.5.in: revision 1.18 As tparm accepts longs we should treat them as long during expansion. Also, fix the ~ and ! logic. Move the strings vs long analysis to a private function, but allow tput(1) to use it so we can work with string parameters to capabilities. Fix building our terminals with a non standard NETBSDSRCDIR, PR lib/46793. Thanks to Bernd Ernesti. Remove debug accidently commited. If char * > long then print a suitable error when passing a string parameter. For platforms where we cannot fit a char * into a long, return NULL and set errno to ENOTSUPP. Add descriptions for terminfo keys to term.h These are extracted by genman and placed into the compiled terminfo.5 Fixes PR lib/47090 Provide a disabled implentation of tlparm and ti_tlparm for completeness. This also improves the readability of _ti_tiparm. Use putp(3) to output our strings. Fixes PR lib/47532
|
1.9.4.1 |
| 23-Jun-2012 |
riz | Pull up following revision(s) (requested by joerg in ticket #328): lib/libc/gen/devname.c: revision 1.22 distrib/sparc64/instfs/dot.profile: revision 1.7 distrib/i386/cdroms/install.sh: revision 1.3 tests/lib/libcurses/director/director.c: revision 1.10 lib/libc/include/reentrant.h: revision 1.15 distrib/amd64/cdroms/install.sh: revision 1.3 tests/include/t_paths.c: revision 1.12 share/man/man7/hier.7: revision 1.101 etc/rc.d/sysdb: revision 1.24 include/stdlib.h: revision 1.99 tests/lib/libcurses/Makefile: revision 1.3 distrib/sparc64/cdroms/installcd/install.sh: revision 1.3 distrib/i386/cdroms/Makefile.cdrom: revision 1.27 lib/libc/gen/ttyname.c: revision 1.25 usr.bin/tic/Makefile: revision 1.2 tools/compat/Makefile: revision 1.57 lib/libterminfo/compile.c: revision 1.7 lib/libc/gen/ttyname.c: revision 1.26 lib/libterminfo/compile.c: revision 1.8 tools/compat/Makefile: revision 1.59 tools/compat/cdbw.h: revision 1.1 distrib/i386/installimage/install.sh: revision 1.2 lib/libc/include/namespace.h: revision 1.154 usr.bin/tic/tic.c: revision 1.13 usr.bin/tic/tic.c: revision 1.14 usr.bin/tic/tic.c: revision 1.15 distrib/sets/lists/base/mi: revision 1.996 usr.bin/tic/tic.c: revision 1.16 usr.sbin/dev_mkdb/dev_mkdb.8: revision 1.13 usr.bin/tic/tic.c: revision 1.17 usr.bin/tic/tic.c: revision 1.18 tools/compat/cdbr.h: revision 1.1 distrib/sparc64/instfs/list: revision 1.25 usr.bin/tic/tic.c: revision 1.19 lib/libc/cdb/cdbw.c: revision 1.4 lib/libc/cdb/cdbw.3: revision 1.4 lib/libc/cdb/cdbw.3: revision 1.5 share/terminfo/Makefile: revision 1.3 usr.sbin/dev_mkdb/dev_mkdb.c: revision 1.29 usr.sbin/dev_mkdb/Makefile: revision 1.8 lib/libc/gen/ttyname.3: revision 1.23 lib/libc/gen/ttyname.3: revision 1.24 lib/libc/cdb/cdbr.c: revision 1.3 include/cdbw.h: revision 1.2 distrib/sparc64/cdroms/installcd/Makefile: revision 1.15 lib/libc/gen/devname.3: revision 1.12 tools/compat/compat_defs.h: revision 1.85 tools/compat/compat_defs.h: revision 1.86 lib/libterminfo/term_private.h: revision 1.10 lib/libterminfo/term.c: revision 1.14 usr.bin/tic/tic.1: revision 1.10 lib/libterminfo/term.c: revision 1.15 lib/libterminfo/Makefile.hash: revision 1.5 lib/libterminfo/term.c: revision 1.16 distrib/amd64/installimage/install.sh: revision 1.2 share/man/man5/rc.conf.5: revision 1.152 distrib/sets/lists/tests/mi: revision 1.472 distrib/amd64/cdroms/Makefile.cdrom: revision 1.7 include/paths.h: revision 1.41 bin/ps/ps.1: revision 1.101 lib/libterminfo/terminfo.5.in: revision 1.16 usr.bin/tic/tic.c: revision 1.20 lib/libterminfo/terminfo.5.in: revision 1.17 Prefer __printflike. Use queue(3) Replace linear lookup with hash table, reducing runtime by 60%. Use e* from util.h. One more strdup -> estrdup. Maintain nalias and nterm on the fly. Add void for ttyslot prototype. Use memcmp in place of strncmp, since length is known to no longer than either of the arguments. Fix a number of memory leaks. Keep final loop of the cleanup in tic(1) under #ifdef __VALGRIND__ though. Add __predict_true / __predict_false definitions. Add a special seeder for cdbw_output that gives stable results. Hook up cdbw(3) for the tool build. Prototype for cdbw_stable_seeder. Provide a usable thr_once for !_REENTRANT Switch device database to cdb(5). Rework ttyname(3) and ttyname_r(3) to depend on new devname_r(3) as heart. Add /dev/pts magic directly to devname(3). While it can lead to returning non-existing paths, the behavior is more consistent that way. Drop caching layer in devname(3), it doesn't buy anything for the common case of having access to the database. Teach devname(3) proper fallback behavior of scanning /dev. Create both old-style and new-style database for now in /etc/rc.d/sysdb. Switch terminfo(3) to cdb(5). Fix typos. Make Alan Barrett happy and add (). Add cdbr(3) support to tools/compat. Bump date for previous. Relax consistency to make it possible to match valid entries. Prefix devname's buffer with /dev/ as ttyname is supposed to return the full path. Reported by Dave Huang.
|
1.9.2.2 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.9.2.1 |
| 30-Oct-2012 |
yamt | sync with head
|
1.10.2.1 |
| 25-Feb-2013 |
tls | resync with head
|
1.11.30.1 |
| 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|