Compare commits

..
22 Commits
Author SHA1 Message Date
Joachim Wiberg eb3bb94cfa Update changelog and bump version for v2.5.2 release
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-04-17 14:19:11 +02:00
Joachim Wiberg 11b9c88732 Add printf format attribute to all vararg functions
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2022-04-17 14:11:31 +02:00
Joachim Wiberg 11d4aafce1 Merge pull request #20 from yangfl/upstream
Fix for some non-linux
2022-01-27 11:34:50 +01:00
yangfl 5cdc5736f3 Replace mknod() with creat()
For mknod(), mode must be S_IFIFO otherwise the behaviour is unspecified
according to SUS, and apparently Debian/kFreeBSD is in the hater list.
2022-01-27 00:11:00 +08:00
yangfl 059bfd7806 test: use sleep() for mtime delay
For filesystems without high-resolution time support, an usleep() is too short
to alter mtime. Though 1s is quite safe, sleep for 2s in case it gets awaken
right within that second.
2022-01-26 23:57:27 +08:00
yangfl 0cda6339a4 Fix fisdir sigfault on Hurd
Apparently Hurd's stat() does not like NULL and will sigfault, this patch takes
care of it.
2022-01-26 02:11:08 +08:00
Joachim Wiberg 8120492fc8 Update changelogs and bump version for v2.5.1
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-12-02 00:43:02 +01:00
Joachim Wiberg 2065165ae9 debian: use dh_link(1) instead to create /usr/inclute/lite symlink
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-12-02 00:42:19 +01:00
Joachim Wiberg 95e5fdba9b Bump version for v2.5.0 release
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-30 07:01:09 +01:00
Joachim Wiberg b21d1c8e9b More syntactic sugar
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-29 18:49:20 +01:00
Joachim Wiberg 5b670951a3 More experimenting and some reflow of a paragraph
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-29 00:33:10 +01:00
Joachim Wiberg 612290c9e2 Experiment with syntax highlighting
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-29 00:28:39 +01:00
Joachim Wiberg 80d11dccf7 Update changelogs for upcoming v2.5.0 release
This should be it, but let's sleep on it for good measure.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-29 00:25:53 +01:00
Joachim Wiberg 438e7a2722 debian: update libite-dev, headers in libite/*.h and lite symlink
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-29 00:25:21 +01:00
Joachim Wiberg 96e023e58e Update README wrt the namespace change
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-29 00:23:24 +01:00
Joachim Wiberg 67a9b379ba Update comments, also namespace is one word
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-29 00:22:38 +01:00
Joachim Wiberg 1c0988b8e2 Fix #18: optional compat symlink lite -> libite/
Default is to create the symlink, to facilitate upgrades.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-28 19:22:45 +01:00
Joachim Wiberg 407b8f6dbf Prefix include guards with LIBITE_ to safe guard name space
The tree.h and queue.h include guards must remain so users don't
accidentally get their system queue.h included as well.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-28 19:20:53 +01:00
Joachim Wiberg bc72e1c3ad Change -lite include path/name space; lite/*.h -> libite/*.h
First step in fixing issue #18.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-28 19:09:55 +01:00
Joachim Wiberg 2d10cf0402 Prepare ChangeLog for upcoming v2.5.0 release
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-28 19:08:32 +01:00
Joachim Wiberg 7adf2a01f2 Bump version for v2.5.0 release cycle (-dev)
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-28 19:07:54 +01:00
Joachim Wiberg a4ff8cce01 strnlen(): defensive programming, check limit before indexing array
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2021-11-28 16:36:43 +01:00
19 changed files with 185 additions and 63 deletions

No files matched your search

+49 -1
View File
@@ -4,6 +4,51 @@ Change Log
All notable changes to the project are documented in this file. All notable changes to the project are documented in this file.
[v2.5.2][] - 2022-04-17
-----------------------
### Changes
- Add printf format attribute hint to all vararg functions. This will
help users of these functions by telling CC what to look for
### Fixes
- Fix `fisdir()` segfault on GNU/Hurd
- Fix `touch)` on Debian/kFreeBSD, use `creat()` instad of `mknod()`
[v2.5.1][] - 2021-12-02
-----------------------
Debian-only fix.
### Fixes
- 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` to `libite/*.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/`.
### Changes
- Header files have moved from `lite/*.h` to `libite/*.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_` to `LIBITE_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`
### Fixes
- Minor, use defensive coding in `strnlen()` replacement. Only used
on systems that do not have a native implementation.
[v2.4.1][] - 2021-10-09 [v2.4.1][] - 2021-10-09
----------------------- -----------------------
@@ -430,7 +475,10 @@ problems this may cause!
Initial extraction of frog DNA from [Finit][]. See [README][] for API details. Initial extraction of frog DNA from [Finit][]. See [README][] for API details.
[UNRELEASED]: https://github.com/troglobit/libite/compare/v2.4.1...HEAD [UNRELEASED]: https://github.com/troglobit/libite/compare/v2.5.2...HEAD
[v2.5.2]: https://github.com/troglobit/libite/compare/v2.5.1...v2.5.2
[v2.5.1]: https://github.com/troglobit/libite/compare/v2.5.0...v2.5.1
[v2.5.0]: https://github.com/troglobit/libite/compare/v2.4.1...v2.5.0
[v2.4.1]: https://github.com/troglobit/libite/compare/v2.4.0...v2.4.1 [v2.4.1]: https://github.com/troglobit/libite/compare/v2.4.0...v2.4.1
[v2.4.0]: https://github.com/troglobit/libite/compare/v2.3.1...v2.4.0 [v2.4.0]: https://github.com/troglobit/libite/compare/v2.3.1...v2.4.0
[v2.3.1]: https://github.com/troglobit/libite/compare/v2.3.0...v2.3.1 [v2.3.1]: https://github.com/troglobit/libite/compare/v2.3.0...v2.3.1
+48 -17
View File
@@ -45,31 +45,54 @@ Using -lite
Libite is by default installed as a library and a set of include files. Libite is by default installed as a library and a set of include files.
To prevent clashing with include files of the same name `-lite` employs To prevent clashing with include files of the same name `-lite` employs
an include file namespace `lite/`, which is strongly recommended to use an include file namespace `libite/`, which is strongly recommended to
in your applications: use in your applications:
#include <lite/lite.h> ```C
#include <lite/conio.h> #include <libite/lite.h>
#include <lite/queue.h> #include <libite/conio.h>
#include <lite/tree.h> #include <libite/queue.h>
#include <libite/tree.h>
```
The output from the `pkg-config` tool holds no surprises in this regard: > **Note:** prior to v2.5.0, the `lite/` namespace was used for headers,
> which is still available in the default install. This clashed with
> the headers of the LiTE library from the DirectFB project.
$ pkg-config --libs --static --cflags libite The output from the `pkg-config` tool holds no surprises:
-I/usr/local/include -L/usr/local/lib -lite
```bash
$ pkg-config --libs --static --cflags libite
-I/usr/local/include -D_LIBITE_LITE -L/usr/local/lib -lite
```
> **Note:** `_LIBITE_LITE` is defined since v2.5.0, useful for software
> that want to be able to build against headers from an older libite:
>
> ```C
> #ifdef _LIBITE_LITE
> # include <libite/lite.h>
> #else
> # include <lite/lite.h>
> #endif
> ```
The prefix path `/usr/local/` shown here is only the default. Use the The prefix path `/usr/local/` shown here is only the default. Use the
`configure` script to select a different prefix when installing libite. `configure` script to select a different prefix when installing libite.
For GNU autotools based projects, use the following in `configure.ac`: For GNU autotools based projects, use the following in `configure.ac`:
# Check for required libraries ```m4
PKG_CHECK_MODULES([lite], [libite >= 1.5.0]) # Check for required libraries
PKG_CHECK_MODULES([lite], [libite >= 1.5.0])
```
and in your `Makefile.am`: and in your `Makefile.am`:
proggy_CFLAGS = $(lite_CFLAGS) ```Makefile
proggy_LDADD = $(lite_LIBS) proggy_CFLAGS = $(lite_CFLAGS)
proggy_LDADD = $(lite_LIBS)
```
> API Documentaion: https://codedocs.xyz/troglobit/libite/ > API Documentaion: https://codedocs.xyz/troglobit/libite/
@@ -80,10 +103,18 @@ Build & Install
This library was initially built for and developed on GNU/Linux systems This library was initially built for and developed on GNU/Linux systems
as a light weight utility library, these days NetBSD should also work. as a light weight utility library, these days NetBSD should also work.
./configure ```bash
make -j5 $ ./configure
sudo make install-strip $ make -j5
sudo ldconfig $ sudo make install-strip
$ sudo ldconfig
```
Use <kbd>./configure --without-symlink</kbd> to prevent the install step
from creating the `lite -> libite/` compatibility symlink for the header
files, required for systems with DirectFB LiTE. The default, however,
is to install the symlink to ensure compatibility with existing software
that depends on the `-lite` library headers in their previous namespace.
**Note:** When checking out code from GIT, use <kbd>./autogen.sh</kbd> **Note:** When checking out code from GIT, use <kbd>./autogen.sh</kbd>
to generate a `configure` script. It is a generated file and otherwise to generate a `configure` script. It is a generated file and otherwise
+9 -3
View File
@@ -1,4 +1,4 @@
AC_INIT(libite, 2.4.1, https://github.com/troglobit/libite/issues) AC_INIT(libite, 2.5.2, https://github.com/troglobit/libite/issues)
AC_CONFIG_AUX_DIR(aux) AC_CONFIG_AUX_DIR(aux)
AM_INIT_AUTOMAKE([1.11 foreign dist-xz]) AM_INIT_AUTOMAKE([1.11 foreign dist-xz])
AM_SILENT_RULES([yes]) AM_SILENT_RULES([yes])
@@ -27,7 +27,13 @@ DX_CHM_FEATURE(OFF)
DX_HTML_FEATURE(ON) DX_HTML_FEATURE(ON)
DX_MAN_FEATURE(OFF) DX_MAN_FEATURE(OFF)
DX_INIT_DOXYGEN(${PACKAGE_NAME}, [${top_builddir}/doc/Doxyfile], [${top_builddir}/doc]) DX_INIT_DOXYGEN(${PACKAGE_NAME}, [${top_builddir}/doc/Doxyfile], [${top_builddir}/doc])
AM_CONDITIONAL(ENABLE_DOXYGEN,[test "x${DX_FLAG_doc}" = x1])
AM_CONDITIONAL(ENABLE_HTML,[test "x${DX_FLAG_html}" = x1]) AC_ARG_WITH([symlink],
AS_HELP_STRING([--without-symlink], [Disable compat /usr/include/lite -> libite symlink]),,
[with_symlink=yes])
AM_CONDITIONAL([ENABLE_DOXYGEN], [test "x${DX_FLAG_doc}" = x1])
AM_CONDITIONAL([ENABLE_HTML], [test "x${DX_FLAG_html}" = x1])
AM_CONDITIONAL([COMPAT_SYMLINK], [test "x$with_symlink" != "xno"])
AC_OUTPUT AC_OUTPUT
+14
View File
@@ -1,3 +1,17 @@
libite (2.5.1) stable; urgency=medium
* Use dh_link(1) to install `/usr/include/lite -> libite/`.
-- Joachim Wiberg <troglobit@gmail.com> Thu, 02 Dec 2021 00:08:41 +0100
libite (2.5.0) stable; urgency=medium
* Header files have moved from `lite/*.h` to `libite/*.h` to prevent
clashing with DirectFB LiTE library. For a transitional period,
however, a compatibility symlink is installed; `lite -> libite/`.
-- Joachim Wiberg <troglobit@gmail.com> Tue, 30 Nov 2021 06:57:17 +0100
libite (2.4.1) stable; urgency=medium libite (2.4.1) stable; urgency=medium
* Add doxygen documentation, https://codedocs.xyz/troglobit/libite/ * Add doxygen documentation, https://codedocs.xyz/troglobit/libite/
+1 -1
View File
@@ -1,4 +1,4 @@
usr/include/lite/*.h usr/include/libite/*.h
usr/lib/*/lib*.a usr/lib/*/lib*.a
usr/lib/*/lib*.so usr/lib/*/lib*.so
usr/lib/*/pkgconfig/lib*.pc usr/lib/*/pkgconfig/lib*.pc
+1
View File
@@ -0,0 +1 @@
/usr/include/libite /usr/include/lite
+3
View File
@@ -6,6 +6,9 @@ export DEB_BUILD_MAINT_OPTIONS = hardening=+all
%: %:
dh $@ --with autoreconf dh $@ --with autoreconf
override_dh_auto_configure:
dh_auto_configure -- --without-symlink
override_dh_installchangelogs: override_dh_installchangelogs:
dh_installchangelogs ChangeLog.md dh_installchangelogs ChangeLog.md
+18 -3
View File
@@ -2,7 +2,7 @@ lib_LTLIBRARIES = libite.la
libite_la_CPPFLAGS = -D_GNU_SOURCE libite_la_CPPFLAGS = -D_GNU_SOURCE
libite_la_CFLAGS = -W -Wall -Wextra libite_la_CFLAGS = -W -Wall -Wextra
libite_la_LDFLAGS = $(AM_LDFLAGS) -version-info 8:1:3 libite_la_LDFLAGS = $(AM_LDFLAGS) -version-info 8:2:3
libite_la_SOURCES = chomp.c copyfile.c \ libite_la_SOURCES = chomp.c copyfile.c \
conio.c conio.h dir.c \ conio.c conio.h dir.c \
erasef.c fopenf.c fremove.c \ erasef.c fopenf.c fremove.c \
@@ -21,10 +21,25 @@ libite_la_SOURCES = chomp.c copyfile.c \
queue.h tree.h queue.h tree.h
## Distribute these header files in the <lite/...> name space ## Distribute these header files in the <libite/...> namespace
pkgincludedir = $(includedir)/lite pkgincludedir = $(includedir)/libite
pkginclude_HEADERS = lite.h queue.h conio.h tree.h strlite.h strdupa.h \ pkginclude_HEADERS = lite.h queue.h conio.h tree.h strlite.h strdupa.h \
strndupa.h strnlen.h strndupa.h strnlen.h
pkgconfigdir = $(libdir)/pkgconfig pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libite.pc pkgconfig_DATA = libite.pc
## For compatibility with previous <lite/...> namespace
if COMPAT_SYMLINK
install-data-hook:
link=$(DESTDIR)$(includedir)/lite; \
if [ ! -f $$link ]; then \
$(LN_S) libite $$link; \
fi
uninstall-hook:
link=$(shell readlink $(DESTDIR)$(includedir)/lite); \
if [ "$$link" = "libite" ]; then \
$(RM) $(DESTDIR)$(includedir)/lite; \
fi
endif
+3 -3
View File
@@ -29,8 +29,8 @@ extern "C"
{ {
#endif #endif
#ifndef CONIO_H_ #ifndef LIBITE_CONIO_H_
#define CONIO_H_ #define LIBITE_CONIO_H_
#include <stdio.h> #include <stdio.h>
@@ -130,7 +130,7 @@ static inline void printheader(FILE *fp, const char *line, int nl)
printhdr(fp, line, nl, REVERSE); printhdr(fp, line, nl, REVERSE);
} }
#endif /* CONIO_H_ */ #endif /* LIBITE_CONIO_H_ */
#ifdef __cplusplus #ifdef __cplusplus
} }
+1 -1
View File
@@ -41,7 +41,7 @@ int fisdir(const char *path)
{ {
struct stat sb; struct stat sb;
if (!stat(path, &sb) && S_ISDIR(sb.st_mode)) if (path && !stat(path, &sb) && S_ISDIR(sb.st_mode))
return 1; return 1;
return 0; return 0;
+1 -2
View File
@@ -8,5 +8,4 @@ Description: Frog DNA, basically
Version: @VERSION@ Version: @VERSION@
Requires: Requires:
Libs: -L${libdir} -lite Libs: -L${libdir} -lite
Cflags: -I${includedir} Cflags: -I${includedir} -D_LIBITE_LITE
+19 -14
View File
@@ -38,8 +38,8 @@ extern "C"
{ {
#endif #endif
#ifndef LITE_H_ #ifndef LIBITE_LITE_H_
#define LITE_H_ #define LIBITE_LITE_H_
#include <errno.h> #include <errno.h>
#include <fcntl.h> /* Definition of AT_* constants for utimensat() */ #include <fcntl.h> /* Definition of AT_* constants for utimensat() */
@@ -72,21 +72,21 @@ typedef struct sdbuf sdbuf_t; /**< Opqaue context struct for telnet APIs */
char *chomp (char *str); char *chomp (char *str);
int erasef (const char *fmt, ...); int erasef (const char *fmt, ...) __attribute__ ((format (printf, 1, 2)));
char *fparseln (FILE *, size_t *, size_t *, const char[3], int); char *fparseln (FILE *, size_t *, size_t *, const char[3], int);
int fexist (const char *file); int fexist (const char *file);
int fisdir (const char *path); int fisdir (const char *path);
FILE *fopenf (const char *mode, const char *fmt, ...); FILE *fopenf (const char *mode, const char *fmt, ...) __attribute__ ((format (printf, 2, 3)));
int fremove (const char *fmt, ...); int fremove (const char *fmt, ...) __attribute__ ((format (printf, 1, 2)));
FILE *tempfile (void); FILE *tempfile (void);
ssize_t copyfile (const char *src, const char *dst, int len, int opt); ssize_t copyfile (const char *src, const char *dst, int len, int opt);
int movefile (const char *src, const char *dst); int movefile (const char *src, const char *dst);
int fcopyfile (FILE *src, FILE *dst); int fcopyfile (FILE *src, FILE *dst);
ssize_t fsendfile (FILE *src, FILE *dst, size_t len); ssize_t fsendfile (FILE *src, FILE *dst, size_t len);
int truncatef (off_t length, const char *fmt, ...); int truncatef (off_t length, const char *fmt, ...) __attribute__ ((format (printf, 2, 3)));
int ifconfig (const char *ifname, const char *addr, const char *mask, int up); int ifconfig (const char *ifname, const char *addr, const char *mask, int up);
@@ -97,7 +97,7 @@ char *lfgetkey (lfile_t *lf, const char *key);
int lfgetint (lfile_t *lf, const char *key); int lfgetint (lfile_t *lf, const char *key);
int fgetint (const char *file, const char *sep, const char *key); int fgetint (const char *file, const char *sep, const char *key);
int fmkpath (mode_t mode, const char *fmt, ...); int fmkpath (mode_t mode, const char *fmt, ...) __attribute__ ((format (printf, 2, 3)));
int mkpath (const char *dir, mode_t mode); int mkpath (const char *dir, mode_t mode);
int makepath (const char *dir); int makepath (const char *dir);
@@ -114,16 +114,16 @@ void *reallocarray(void *optr, size_t nmemb, size_t size);
void progress (int percent, int max_width); void progress (int percent, int max_width);
void progress_simple(int percent); void progress_simple(int percent);
int systemf (const char *fmt, ...); int systemf (const char *fmt, ...) __attribute__ ((format (printf, 1, 2)));
sdbuf_t*telnet_open (int addr, short port); sdbuf_t*telnet_open (int addr, short port);
int telnet_close (sdbuf_t *ctx); int telnet_close (sdbuf_t *ctx);
int telnet_expect (sdbuf_t *ctx, char *script[], FILE *output); int telnet_expect (sdbuf_t *ctx, char *script[], FILE *output);
int telnet_session (int addr, short port, char *script[], FILE *output); int telnet_session (int addr, short port, char *script[], FILE *output);
int touchf (const char *fmt, ...); int touchf (const char *fmt, ...) __attribute__ ((format (printf, 1, 2)));
int yorn (const char *fmt, ...); int yorn (const char *fmt, ...) __attribute__ ((format (printf, 1, 2)));
char *which (const char *cmd); char *which (const char *cmd);
int whichp (const char *cmd); int whichp (const char *cmd);
@@ -139,10 +139,15 @@ int whichp (const char *cmd);
*/ */
static inline int touch(const char *path) static inline int touch(const char *path)
{ {
int fd;
if (utimensat(AT_FDCWD, path, NULL, 0)) { if (utimensat(AT_FDCWD, path, NULL, 0)) {
if (errno == ENOENT) if (errno != ENOENT)
return mknod((path), S_IFREG|0644, 0); return -1;
return -1; fd = creat(path, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);
if (fd < 0)
return -1;
close(fd);
} }
return 0; return 0;
} }
@@ -245,7 +250,7 @@ static inline int fisslashdir(const char *dir)
#define pidfile_read_pid(file) pidfile_read(file) #define pidfile_read_pid(file) pidfile_read(file)
#define signal_pidfile(file, signo) pidfile_signal(file, signo) #define signal_pidfile(file, signo) pidfile_signal(file, signo)
#endif /* LITE_H_ */ #endif /* LIBITE_LITE_H_ */
#ifdef __cplusplus #ifdef __cplusplus
} }
+3 -3
View File
@@ -36,8 +36,8 @@ extern "C"
{ {
#endif #endif
#ifndef LITE_STRDUPA_H #ifndef LIBITE_STRDUPA_H
#define LITE_STRDUPA_H #define LIBITE_STRDUPA_H
#if !defined(HAVE_STRDUPA) #if !defined(HAVE_STRDUPA)
#if defined(strdupa) #if defined(strdupa)
@@ -67,7 +67,7 @@ extern "C"
#endif /* __GNUC__ */ #endif /* __GNUC__ */
#endif /* !HAVE_STRDUPA */ #endif /* !HAVE_STRDUPA */
#endif /* LITE_STRDUPA_H */ #endif /* LIBITE_STRDUPA_H */
#ifdef __cplusplus #ifdef __cplusplus
} }
+3 -3
View File
@@ -33,8 +33,8 @@ extern "C"
{ {
#endif #endif
#ifndef LITE_STRING_H_ #ifndef LIBITE_STRING_H_
#define LITE_STRING_H_ #define LIBITE_STRING_H_
#include <stdint.h> /* uint8_t, uint16_t, uint32_t, INT32_MAX, etc. */ #include <stdint.h> /* uint8_t, uint16_t, uint32_t, INT32_MAX, etc. */
#include <string.h> #include <string.h>
@@ -143,7 +143,7 @@ static inline int string_case_compare(const char *a, const char *b)
return strlen(a) == strlen(b) && !strcasecmp(a, b); return strlen(a) == strlen(b) && !strcasecmp(a, b);
} }
#endif /* LITE_STRING_H_ */ #endif /* LIBITE_STRING_H_ */
#ifdef __cplusplus #ifdef __cplusplus
} }
+3 -3
View File
@@ -36,8 +36,8 @@ extern "C"
{ {
#endif #endif
#ifndef LITE_STRNDUPA_H_ #ifndef LIBITE_STRNDUPA_H_
#define LITE_STRNDUPA_H_ #define LIBITE_STRNDUPA_H_
#if !defined(HAVE_STRNDUPA) #if !defined(HAVE_STRNDUPA)
#if defined(strndupa) #if defined(strndupa)
@@ -69,7 +69,7 @@ extern "C"
#endif /* __GNUC__ */ #endif /* __GNUC__ */
#endif /* !HAVE_STRNDUPA */ #endif /* !HAVE_STRNDUPA */
#endif /* GNU_STRING_STRNDUPA_H */ #endif /* LIBITE_STRNDUPA_H */
#ifdef __cplusplus #ifdef __cplusplus
} }
+4 -4
View File
@@ -27,8 +27,8 @@ extern "C"
{ {
#endif #endif
#ifndef LITE_STRNLEN_H_ #ifndef LIBITE_STRNLEN_H_
#define LITE_STRNLEN_H_ #define LIBITE_STRNLEN_H_
#if !defined(HAVE_STRNLEN) #if !defined(HAVE_STRNLEN)
#if defined(strnlen) #if defined(strnlen)
@@ -51,14 +51,14 @@ static inline size_t xstrnlen(const char *str, size_t lim)
{ {
size_t i = 0; size_t i = 0;
while (str[i] && i < lim) while (i < lim && str[i])
i++; i++;
return i; return i;
} }
#endif #endif
#endif /* LITE_STRNLEN_H_ */ #endif /* LIBITE_STRNLEN_H_ */
#ifdef __cplusplus #ifdef __cplusplus
} }
+3 -3
View File
@@ -1,5 +1,5 @@
#ifndef LITE_TESTS_CHECK_H_ #ifndef LIBLITE_TESTS_CHECK_H_
#define LITE_TESTS_CHECK_H_ #define LIBLITE_TESTS_CHECK_H_
#include <stdarg.h> #include <stdarg.h>
#include <stdlib.h> #include <stdlib.h>
@@ -78,4 +78,4 @@ static inline char *timespec2str(struct timespec *ts, char *buf, size_t len)
return buf; return buf;
} }
#endif /* LITE_TESTS_CHECK_H_ */ #endif /* LIBLITE_TESTS_CHECK_H_ */
+1 -1
View File
@@ -41,7 +41,7 @@ static int mtime()
char buf[80]; char buf[80];
/* Must sleep a while here otherwise we execute too fast => no mtime change :-( */ /* Must sleep a while here otherwise we execute too fast => no mtime change :-( */
usleep(10000); sleep(2);
PRINT("Calling pidfile() again to update mtime ...\n"); PRINT("Calling pidfile() again to update mtime ...\n");
if (pidfile(pidfile_arg)) if (pidfile(pidfile_arg))
+1 -1
View File
@@ -23,7 +23,7 @@ static int mtime(char *file)
stat(file, &before); stat(file, &before);
/* Must sleep a while here otherwise we execute too fast => no mtime change :-( */ /* Must sleep a while here otherwise we execute too fast => no mtime change :-( */
usleep(10000); sleep(2);
PRINT("Calling touch() again to update mtime ...\n"); PRINT("Calling touch() again to update mtime ...\n");
if (touch(file)) { if (touch(file)) {