-lite 2.6.1

Libite (-lite) is a lightweight library of frog DNA. It can be used to fill the gaps in any dinosaur project. It holds useful functions and macros developed by both Finit and the OpenBSD project. Most notably the string functions: strlcpy(3), strlcat(3) and the highly useful *BSD sys/queue.h and sys/tree.h API's. Libite aims to fill in the gaps missing in GLIBC/EGLIBC. (It does not aimo to become another GLIB though.) One such gap in GLIBC is the missing _SAFE macros in sys/queue.h — highly recommended when traversing lists to delete/free nodes.

Tags utility library list queue tree strlcpy linux
License MITL
State stable

Recent Releases

2.6.116 Oct 2023 03:15 minor feature: Update changelog and bump version for v2.6.1 release Signed-off-by: Joachim Wiberg lt;troglobit@gmail.com gt;.
2.6.018 Sep 2023 06:25 minor feature: Update ChangeLog and bump version to v2.6.0 GA Signed-off-by: Joachim Wiberg lt;troglobit@gmail.com gt;.
2.5.309 Apr 2023 03:15 minor feature: Update changelog and bump version for v2.5.3 release Signed-off-by: Joachim Wiberg lt;troglobit@gmail.com gt;.
2.5.218 Apr 2022 03:25 minor feature: Update changelog and bump version for v2.5.2 release Signed-off-by: Joachim Wiberg lt;troglobit@gmail.com gt;.
2.5.105 Dec 2021 03:15 minor feature: Update changelogs and bump version for v2.5.1 Signed-off-by: Joachim Wiberg lt;troglobit@gmail.com gt;.
2.5.001 Dec 2021 03:15 minor feature: Bump version for v2.5.0 release Signed-off-by: Joachim Wiberg lt;troglobit@gmail.com gt;.
2.4.110 Oct 2021 18:45 minor feature: Add doxygen API documentation to project, included in tarball, and automatically generated at https://codedocs.xyz/troglobit/libite/. Relocate tests/ to test/ in source tree. Relocate docs/ to doc/ in source tree. PreCFLAGS/CPPFLAGS/etc with AM_ in test/Makefile.am to prevent clashing with environment. imported from libuEv. Replace obsolete AM_CONFIG_HEADER with AC_CONFIG_HEADERS. with tempfile() returning EOPNOTSUPP on Azure, use fallback to mkostemp() with O_CLOEXEC flag set on such filesystems.
2.4.028 Mar 2021 11:45 minor feature: Add support for touchf(), formatted string support for touch(). Add support for erasef(), formatted string support for erase(). Add support for strtrim(), trims leading and trailing white-space from a string. systemf() improper handling of system() return value. Now checks if exited OK, then returning the exit status of the command, or if not exited OK, then checks if the command was signaled, and returns -1 with errno set. This also allows for returning 127, like system(), if the shell, or the program itself, did not exist.
2.3.113 Feb 2021 06:25 minor feature: Copyright updates, including LICENSE file, year + author last name. Debian packaging only.
2.2.017 Mar 2020 09:25 minor feature: Add support for systemf(), formatted string system() replacement. Add support for fmkpath(), formatted string mkpath(). Add support for fopenf(), formatted string fopen() replacement. possible memory leak in rsync(), found by Coverity Scan. Check return value of fstat() to prevent bogus destination file times when using copyfile(), found by Coverity Scan.
2.1.223 Feb 2020 15:25 minor feature: Debian package upgrade from libite - libite5.
2.1.027 Aug 2019 06:25 minor feature: Add support for strmatch() and strnmatch(). Add support for yorn(), safe yes-or-no prompt. Add support for telnet expect/session APIs. Add modified printhdr() which takes ANSI attribute. pidfile_signal(): always return result of kill(), or the result of remove() if we successfully sent SIGKILL. strtonum(): POSIX strtoll() returns EINVAL, check that. support C++ extern "C" for header files.
2.0.211 May 2018 19:05 minor feature: missing includes in strlite.h for standalone use. FTBFS strtonum.c on older systems w/o LLONG_MAX and LLONG_MIN.
2.0.123 Dec 2017 08:25 minor feature: Add missing initscr() declaration, regression in v2.0.0. Add #ifdef guards around min() and max() macros. Add const to char args in multiple API:s: Fexist() Fgetint() Fisslashdir() Copyfile() Movefile() Ifconfig() Lfopen() Lfgetkey() Lfgetint() . Fexist(). Fgetint(). Fisslashdir(). Copyfile(). Movefile(). Ifconfig(). Lfopen(). Lfgetkey(). Lfgetint(). uncommon location of which command in unit test. supply unit test with a default PATH. touch() command cannot handle relative paths when updating mtime of an existing file.
2.0.023 Nov 2017 10:25 minor feature: Remove tree(), moved to toolbox.git instead. Remove fmode(), please use stat() instead, it's safer. Add support for keeping mtime in copy() and rsync(). Move source files to an src/ sub-directory. Move initscr() from conio.h to conio.c. Update docs, recommend mkpath() over makepath(). Bump ABI version, major changes to library. inconsistent return value in mkpath() and makepath(). constify mkpath() and makepath().
1.9.325 Oct 2017 12:45 minor feature: Initscr(), use stdout, not stderr, like the rest of the conio.h macros. Also, stderr may be redirected by user. Tree(), update unit test, use standard directries. Initscr(), verify that both stdin and stdout are real TTYs before messing up output or blocking on input for the user. Tree(), increase internal buffer slightly, output may be truncated otherwise. Found by GCC 7.2.
1.9.211 Jul 2017 11:05 minor feature: Add initscr() function to query screen size. Convert printheader() to a static inline function.
1.9.107 Jul 2017 09:45 minor feature: Add missing whichp() predicate function to accompany which(). Allow which("ps aux"), which skips any arguments to command.
1.9.003 Jul 2017 10:45 minor feature: Add which(), a C implementation of UNIX which(1). Add printheader(), prints a top-like table heading for client tools. Remove UNUSED() macro, recommended to disable GCC warning instead. touch() does not update mtime if file exists. non-writable tempfile(), now with proper unit test.
1.8.310 Jan 2017 02:45 minor feature: Support absolute path in pidfile(). Needed by, e.g. Inadyn. Add initial debian/ packaging. Update README with note on remembering to set umask() . In use-cases when pidfile() is called consecutively, e.g. on SIGHUP, recreate PID file if it no longer exists.
1.8.205 Sep 2016 19:25 minor feature: Updated build instructions in README. Converted touch(), makedir(), makefifo(), and erase() from macros to Inline functions. Also removed implicit logging to stderr on error. Small memory leak in pidfile()... at exit. For building on musl libc.
1.8.127 Jun 2016 00:05 minor feature: Fparseln(), portability for NetBSD. Pidfile(), portability for NetBSD and OpenBSD.
1.8.009 Jun 2016 11:45 minor feature: Change return type of fsendfile() from size_t to ssize_t . Change dir() semantics: do not assert and always return error without calling perror() or similar. The OpenBSD pidfile() function's prepath _PATH_VARRUN can now be overridden by setting the hidden __pidfile_path variable. E.g., to _PATH_TMP. Make sure read the docs!. Add new unit test framework make check. bad path in new strndupa() header file. Add missing progress bar API's to lite.h.
1.7.005 Jun 2016 07:05 minor feature: Add support for GNU strdupa(), for Inadyn on NetBSD. Add support for GNU strndupa() and strnlen() . mkpath() to handle creating relative directories.
1.6.014 May 2016 18:25 minor feature: Add support for NetBSD fparaseln() for the benefit of Mg . Add support for OpenBSD reallocarray() for the benefit of Mg . Constify fisdir() argument.
1.5.118 Apr 2016 23:25 minor feature: Update README.md, add help when libite is used in autotools projects. Spell checking and minor cleanup. Activate use of utimensat() when pidfile() is called multiple times. This reduces the overhead of calling open+write+to simply updating the mtime of the PID file. Westermo for fcopyfile(): nothing copied on embedded PPC system when using tmpfile() as source.
1.5.020 Mar 2016 03:23 minor feature: Change namespace for header files: libite/ to lite/, e.g. using pkg-config your C program must now #include . Update pidfile() to use utimensat() to update atime+mtime instead of opening and writing PID again. Less overhead and nanonsecond res.
1.4.424 Feb 2016 10:45 minor feature: Add ibite.pc.in for pkg-config support. tempfile() fails with bad O_TMPFILE on some embedded. Targets, in particular PowerPC. On systems with older GLIBC but with a sufficiently new kernel O_TMPFILE is missing and the local libite Definition was wrong, hard coded for x86. by Johan Askerin.
1.4.303 Feb 2016 18:45 minor feature: Remove symlinks to Markdown files from GIT. Distribute and install Markdown files: README.md, etc.
1.4.226 Jan 2016 03:15 minor feature: GCC6 -Wmisleading-indentation causing FTBFS in pimd. Which enables -Werror.
1.4.122 Jan 2016 15:52 major feature: Change to GNU configure and build system. Add Niels Provos' splay and red-black tree implementation from OpenBSD sys/tree.h, r1.14. Make pidfile() file name accessible as __pidfile_name