All notable changes to the project are documented in this file.
v2.6.1 - 2023-10-15
- FTBFS uClibc and musl libc,
lite.h
missingstdarg.h
include
v2.6.0 - 2023-09-17
- New APIs from the Infix Project:
fexistf()
vfopenf()
popenf()
vreadsnf()
,readsnf()
,writesf()
vreadllf()
,readllf()
,readdf()
writellf()
,writedf()
- Spellchecking of API docs
v2.5.3 - 2023-04-08
- Refactor
copyfile()
unit test and verify number of bytes copied - Add missing
rsync()
unit test to ensure proper function
rsync()
does not copy single files correctlycopyfile()
does not handle empty source files correctly (error)copyfile()
does not properly create destination dir
v2.5.2 - 2022-04-17
- Add printf format attribute hint to all vararg functions. This will help users of these functions by telling CC what to look for
- Fix
fisdir()
segfault on GNU/Hurd - Fix
touch)
on Debian/kFreeBSD, usecreat()
instad ofmknod()
v2.5.1 - 2021-12-02
Debian-only fix.
- Use
dh_link(1)
to install/usr/include/lite -> libite/
. The symlink created by libite installer itself is not kept.
v2.5.0 - 2021-11-30
Note: namespace change; the -lite library include files have moved from
lite/*.h
tolibite/*.h
due to an unfortunate clash with "LiTE is a Toobox Engine", from the DirectFB project. For a transitional period, however, a compatibility symlink is installed;lite -> libite/
.
- Header files have moved from
lite/*.h
tolibite/*.h
to prevent clashing with DirectFB LiTE library. - Include guards in header files have been renamed, much in the same
fashion as the move (above), from
LITE_foo_H_
toLIBITE_FOO_H_
- Add configure option to disable compatibility symlink, for systems
that do not want name clashes with DirectFB/LiTE, or do not need to
be backwards compatible; use
configure --without-symlink
- Minor, use defensive coding in
strnlen()
replacement. Only used on systems that do not have a native implementation.
v2.4.1 - 2021-10-09
- Add doxygen API documentation to project, included in tarball, and automatically generated at https://codedocs.xyz/troglobit/libite/
- Relocate
tests/
totest/
in source tree - Relocate
docs/
todoc/
in source tree
- Prefix CFLAGS/CPPFLAGS/etc with
AM_
intest/Makefile.am
to prevent clashing with environment. Fix imported from libuEv - Replace obsolete
AM_CONFIG_HEADER
withAC_CONFIG_HEADERS
- Fix issue with
tempfile()
returning EOPNOTSUPP on Azure, use fallback tomkostemp()
withO_CLOEXEC
flag set
v2.4.0 - 2021-03-27
- Add support for
touchf()
, formatted string support fortouch()
- Add support for
erasef()
, formatted string support forerase()
- Add support for
strtrim()
, trims leading and trailing white-space from a string
- Fix
systemf()
improper handling ofsystem()
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 witherrno
set. This also allows for returning 127, likesystem()
, if the shell, or the program itself, did not exist
v2.3.1 - 2021-02-12
- Copyright updates, including LICENSE file, year + author last name
- Debian packaging fixes only
v2.3.0 - 2021-02-12
- Add support for
fremove()
, formattedremove()
replacement - Add support for
truncatef()
, formattedtruncate()
replacement - Add tar.gz archives to distribution
- Handle
ETIMEDOUT
error forconnect()
call intelnet_open()
v2.2.0 - 2020-03-16
- Add support for
systemf()
, formatted stringsystem()
replacement - Add support for
fmkpath()
, formatted stringmkpath()
- Add support for
fopenf()
, formatted stringfopen()
replacement
- Fix possible memory leak in
rsync()
, found by Coverity Scan - Check return value of
fstat()
to prevent bogus destination file times when usingcopyfile()
, found by Coverity Scan
v2.1.2 - 2020-02-22
- Fix Debian package upgrade from libite -> libite5
v2.1.1 - 2020-02-22
- Add test/example for
printhdr()
- Update copyright years
- chomp: Check for beginning of string while removing \n's
v2.1.0 - 2019-08-26
- Add support for
strmatch()
andstrnmatch()
- Add support for
yorn()
, safe yes-or-no prompt - Add support for telnet expect/session APIs
- Add modified
printhdr()
which takes ANSI attribute
- Fix
pidfile_signal()
: always return result ofkill()
, or the result ofremove()
if we successfully sentSIGKILL
- Fix
strtonum()
: POSIXstrtoll()
returnsEINVAL
, check that - Fix #13, support C++
extern "C" {}
for header files
v2.0.2 - 2018-05-10
- Fix issue #12, missing includes in
strlite.h
for standalone use - FTBFS
strtonum.c
on older systems w/oLLONG_MAX
andLLONG_MIN
v2.0.1 - 2017-12-22
- Add missing
initscr()
declaration, regression in v2.0.0 - Add
#ifdef
guards aroundmin()
andmax()
macros - Add
const
tochar *
args in multiple API:s:fexist()
fgetint()
fisslashdir()
copyfile()
movefile()
ifconfig()
lfopen()
lfgetkey()
lfgetint()
- Fix #9, uncommon location of
which
command in unit test - Fix #10, supply unit test with a default
$PATH
- Fix #11,
touch()
command cannot handle relative paths when updating the mtime of an existing file
v2.0.0 - 2017-11-22
- Remove
tree()
, moved to toolbox.git instead - Remove
fmode()
, please usestat()
instead, it's safer - Add support for keeping mtime in
copy()
andrsync()
- Move source files to an
src/
sub-directory - Move
initscr()
fromconio.h
toconio.c
- Update docs, recommend
mkpath()
overmakepath()
- Bump ABI version, major changes to library
- Fix #7, inconsistent return value in
mkpath()
andmakepath()
- Fix #8, constify
mkpath()
andmakepath()
v1.9.3 - 2017-10-24
initscr()
, use stdout, not stderr, like the rest of theconio.h
macros. Also, stderr may be redirected by usertree()
, 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 usertree()
, increase internal buffer slightly, output may be truncated otherwise. Found by GCC 7.2
v1.9.2 - 2017-07-09
- Add
initscr()
function to query screen size - Convert
printheader()
to a static inline function
v1.9.1 - 2017-07-03
- Add missing
whichp()
predicate function to accompanywhich()
- Allow
which("ps aux")
, which skips any arguments to command
v1.9.0 - 2017-07-02
- 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
- Fix issue #6:
touch()
does not update mtime if file exists - Fix non-writable
tempfile()
, now with proper unit test
v1.8.3 - 2017-01-08
- 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. onSIGHUP
, recreate PID file if it no longer exists
v1.8.2 - 2016-09-05
- Updated build instructions in README.
- Converted
touch()
,makedir()
,makefifo()
, anderase()
from macros to inline functions. Also removed implicit logging to stderr on error.
- Fix small memory leak in
pidfile()
... at exit. - Fixes for building on musl libc
v1.8.1 - 2016-06-25
fparseln()
, portability fix for NetBSDpidfile()
, portability fix for NetBSD and OpenBSD
v1.8.0 - 2016-06-06
- Change return type of
fsendfile()
fromsize_t
tossize_t
- Change
dir()
semantics: do not assert and always return error without callingperror()
or similar. - The OpenBSD
pidfile()
function's prefix path_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
.
- Fix bad path in new
strndupa()
header file. - Add missing progress bar API's to
lite.h
v1.7.0 - 2016-06-05
- Add support for GNU
strdupa()
, for Inadyn on NetBSD. - Add support for GNU
strndupa()
andstrnlen()
- Fix
mkpath()
to handle creating relative directories.
v1.6.0 - 2016-05-13
- Add support for NetBSD
fparaseln()
for the benefit of Mg - Add support for OpenBSD
reallocarray()
for the benefit of Mg - Constify
fisdir()
argument
v1.5.1 - 2016-04-17
Minor fix release.
- Update README.md, add help when libite is used in autotools projects. Spell checking and minor cleanup.
- Activate use of
utimensat()
whenpidfile()
is called multiple times. This reduces the overhead of calling open+write+close to simply updating the mtime of the PID file. - Westermo fixes for
fcopyfile()
: nothing copied on embedded PPC system when usingtmpfile()
as source.
v1.5.0 - 2016-03-20
This release changes the header file namespace. Apologies for any problems this may cause!
- Change namespace for header files:
libite/
tolite/
, e.g. usingpkg-config
your C program must now#include <lite/lite.h>
- Update
pidfile()
to useutimensat()
to update atime+mtime instead of opening and writing PID again. Less overhead and nanonsecond res.
v1.4.4 - 2016-02-23
- Add
ibite.pc.in
forpkg-config
support.
- Fix issue #3:
tempfile()
fails with badO_TMPFILE
on some embedded targets, in particular PowerPC. On systems with older GLIBC but with a sufficiently new kernelO_TMPFILE
is missing and the local libite definition was wrong, hard coded for x86. Fixed by Johan Askerin.
v1.4.3 - 2016-02-02
- Remove symlinks to Markdown files from GIT
- Distribute and install Markdown files: README.md, etc.
v1.4.2 - 2016-01-23
- Fix issue #2: GCC6
-Wmisleading-indentation
causing FTBFS in pimd, which enables-Werror
v1.4.1 - 2016-01-22
- Fix install path for include files, regression in v1.4.0 With the
introduction of GNU autotools include file namespace was unfortunately
lost. All include files were therefore installed in
$(prefix)/include instead of $ (prefix)/include/libite.
v1.4.0 - 2016-01-22
- 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
- Step ABI revision to 2.1, with help from http://250bpm.com/blog:41
v1.3.0 - 2016-01-07
- Add highly useful typeless
min()
/max()
macros tolite.h
, courtesy of Tobias Waldekranz - Add BSD
queue.h
and Borland inspiredconio.h
toinstall-dev
target. Needed by Finit. - Note, this release update
queue.h
to OpenBSD v1.43, which removes support for circular queues (CIRCLEQ). - Update
strlcpy.c
to OpenBSD v1.12, readability fixes. - Update
strlcat.c
to OpenBSD v1.14, readability fixes. - Update
strtonum.c
to OpenBSD v1.7, tiniest of style tweaks.
- Only update mtime if
pidfile()
is called more than once, do not install multipleatexit()
handlers. - Add
#ifndef pidfile
, as for other BSD functions, in case the user already have a local copy, or a C library with one.
v1.2.0 - 2015-11-23
- Add simple parser for UNIX configuration files, e.g.
/etc/group
,/etc/passwd
, and/etc/protocols
: lfopen()
lfclose()
lftok()
lfgetkey()
lfgetint()
fgetint()
- Do not allow
VERSION
to be overloaded by build system. - Make sure we don't inherit
LDFLAGS
from environment.
v1.1.1 - 2015-09-27
- Silence annoying warnings from GNU ar
- Fix macro definitions for compat APIs
v1.1.0 - 2015-09-16
- Support for
make distdir
used by automake based projects lite.h
move fromerror.h
to more BSD friendlyerr.h
- Add highly useful
NELEMS()
and bitmanip macros - Lots of autotests added
- Add support for running autotests from Travis
- Add
progress()
simple progress bar - Add
tree()
simple command line tree replacement - Bump
SONAME
tolibite.so.2
on behalf of Finit
pidfile()
upgrade to OpenBSD r1.11- Lots of README updates, fixes and additions
v1.0.0 - 2015-07-12
Initial extraction of frog DNA from Finit. See README for API details.