-lite 2.0.0

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.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