diff options
| author | Laurent Bercot <ska-skaware@skarnet.org> | 2025-06-02 18:29:41 +0000 |
|---|---|---|
| committer | Laurent Bercot <ska@appnovation.com> | 2025-06-02 18:29:41 +0000 |
| commit | 1f94bad45a8a161410c4564ebe5bbb892556d1bd (patch) | |
| tree | 87ac42a398ea4536344e6ebe0a506f79d9b3564d | |
| parent | df513f668cbd03f369bfaffa6743b5f21dbfe355 (diff) | |
| download | skalibs-1f94bad45a8a161410c4564ebe5bbb892556d1bd.tar.gz | |
Add prog.h and prog_pid_fill
Signed-off-by: Laurent Bercot <ska@appnovation.com>
| -rw-r--r-- | NEWS | 1 | ||||
| -rw-r--r-- | doc/upgrade.html | 1 | ||||
| -rw-r--r-- | package/deps.mak | 6 | ||||
| -rw-r--r-- | src/include/skalibs/prog.h | 18 | ||||
| -rw-r--r-- | src/include/skalibs/stddjb.h | 1 | ||||
| -rw-r--r-- | src/include/skalibs/strerr.h | 3 | ||||
| -rw-r--r-- | src/libstddjb/prog_pid_fill.c | 15 |
7 files changed, 41 insertions, 4 deletions
@@ -6,6 +6,7 @@ In 2.14.5.0 - Bugfixes. - Support for shared libraries on MacOS. - crc32c implementation: skalibs/crc32c.h + - new skalibs/prog.h header for PROG modifications In 2.14.4.0 diff --git a/doc/upgrade.html b/doc/upgrade.html index 3903acc..dac4635 100644 --- a/doc/upgrade.html +++ b/doc/upgrade.html @@ -21,6 +21,7 @@ <ul> <li> Support for shared libraries on MacOS. </li> <li> New <tt>crc32c</tt> function. </li> + <li> New <tt>skalibs/prog.h</tt> header, for PROG modifications </li> </ul> <h2> in 2.14.4.0 </h2> diff --git a/package/deps.mak b/package/deps.mak index e771be2..a3b8641 100644 --- a/package/deps.mak +++ b/package/deps.mak @@ -35,6 +35,7 @@ src/include/skalibs/lolstdio.h: src/include/skalibs/bufalloc.h src/include/skali src/include/skalibs/netstring.h: src/include/skalibs/buffer.h src/include/skalibs/stralloc.h src/include/skalibs/posixishard.h: src/include/skalibs/gccattributes.h src/include/skalibs/stat.h src/include/skalibs/posixplz.h: src/include/skalibs/functypes.h src/include/skalibs/gccattributes.h +src/include/skalibs/prog.h: src/include/skalibs/types.h src/include/skalibs/random.h: src/include/skalibs/functypes.h src/include/skalibs/stralloc.h src/include/skalibs/setgroups.h: src/include/skalibs/sysdeps.h src/include/skalibs/sha512.h: src/include/skalibs/uint64.h @@ -46,8 +47,8 @@ src/include/skalibs/skamisc.h: src/include/skalibs/buffer.h src/include/skalibs/ src/include/skalibs/socket.h: src/include/skalibs/fcntl.h src/include/skalibs/gccattributes.h src/include/skalibs/posixplz.h src/include/skalibs/tai.h src/include/skalibs/stat.h: src/include/skalibs/sysdeps.h src/include/skalibs/stdcrypto.h: src/include/skalibs/blake2s.h src/include/skalibs/crc32c.h src/include/skalibs/sha1.h src/include/skalibs/sha256.h src/include/skalibs/sha512.h -src/include/skalibs/stddjb.h: src/include/skalibs/alarm.h src/include/skalibs/alloc.h src/include/skalibs/allreadwrite.h src/include/skalibs/bitarray.h src/include/skalibs/bufalloc.h src/include/skalibs/buffer.h src/include/skalibs/bytestr.h src/include/skalibs/cbuffer.h src/include/skalibs/cdb.h src/include/skalibs/cdbmake.h src/include/skalibs/cspawn.h src/include/skalibs/devino.h src/include/skalibs/direntry.h src/include/skalibs/disize.h src/include/skalibs/diuint.h src/include/skalibs/diuint32.h src/include/skalibs/djbtime.h src/include/skalibs/djbunix.h src/include/skalibs/env.h src/include/skalibs/envalloc.h src/include/skalibs/error.h src/include/skalibs/exec.h src/include/skalibs/fmtscan.h src/include/skalibs/functypes.h src/include/skalibs/gccattributes.h src/include/skalibs/genalloc.h src/include/skalibs/genwrite.h src/include/skalibs/iopause.h src/include/skalibs/ip46.h src/include/skalibs/lolstdio.h src/include/skalibs/netstring.h src/include/skalibs/segfault.h src/include/skalibs/selfpipe.h src/include/skalibs/setgroups.h src/include/skalibs/sgetopt.h src/include/skalibs/sig.h src/include/skalibs/siovec.h src/include/skalibs/skamisc.h src/include/skalibs/socket.h src/include/skalibs/stralloc.h src/include/skalibs/tai.h src/include/skalibs/types.h src/include/skalibs/uint16.h src/include/skalibs/uint32.h src/include/skalibs/uint64.h -src/include/skalibs/strerr.h: src/include/skalibs/gccattributes.h +src/include/skalibs/stddjb.h: src/include/skalibs/alarm.h src/include/skalibs/alloc.h src/include/skalibs/allreadwrite.h src/include/skalibs/bitarray.h src/include/skalibs/bufalloc.h src/include/skalibs/buffer.h src/include/skalibs/bytestr.h src/include/skalibs/cbuffer.h src/include/skalibs/cdb.h src/include/skalibs/cdbmake.h src/include/skalibs/cspawn.h src/include/skalibs/devino.h src/include/skalibs/direntry.h src/include/skalibs/disize.h src/include/skalibs/diuint.h src/include/skalibs/diuint32.h src/include/skalibs/djbtime.h src/include/skalibs/djbunix.h src/include/skalibs/env.h src/include/skalibs/envalloc.h src/include/skalibs/error.h src/include/skalibs/exec.h src/include/skalibs/fmtscan.h src/include/skalibs/functypes.h src/include/skalibs/gccattributes.h src/include/skalibs/genalloc.h src/include/skalibs/genwrite.h src/include/skalibs/iopause.h src/include/skalibs/ip46.h src/include/skalibs/lolstdio.h src/include/skalibs/netstring.h src/include/skalibs/prog.h src/include/skalibs/segfault.h src/include/skalibs/selfpipe.h src/include/skalibs/setgroups.h src/include/skalibs/sgetopt.h src/include/skalibs/sig.h src/include/skalibs/siovec.h src/include/skalibs/skamisc.h src/include/skalibs/socket.h src/include/skalibs/stralloc.h src/include/skalibs/tai.h src/include/skalibs/types.h src/include/skalibs/uint16.h src/include/skalibs/uint32.h src/include/skalibs/uint64.h +src/include/skalibs/strerr.h: src/include/skalibs/gccattributes.h src/include/skalibs/prog.h src/include/skalibs/strerr2.h: src/include/skalibs/strerr.h src/include/skalibs/tai.h: src/include/skalibs/gccattributes.h src/include/skalibs/uint64.h src/include/skalibs/textclient.h: src/include/skalibs/allreadwrite.h src/include/skalibs/tai.h src/include/skalibs/textmessage.h @@ -482,6 +483,7 @@ src/libstddjb/openwritevnclose_unsafe5.o src/libstddjb/openwritevnclose_unsafe5. src/libstddjb/path_canonicalize.o src/libstddjb/path_canonicalize.lo: src/libstddjb/path_canonicalize.c src/include/skalibs/djbunix.h src/libstddjb/pipe_internal.o src/libstddjb/pipe_internal.lo: src/libstddjb/pipe_internal.c src/include/skalibs/djbunix.h src/include/skalibs/fcntl.h src/include/skalibs/nonposix.h src/include/skalibs/sysdeps.h src/libstddjb/prog.o src/libstddjb/prog.lo: src/libstddjb/prog.c src/include/skalibs/strerr.h +src/libstddjb/prog_pid_fill.o src/libstddjb/prog_pid_fill.lo: src/libstddjb/prog_pid_fill.c src/include/skalibs/prog.h src/include/skalibs/types.h src/libstddjb/readnclose.o src/libstddjb/readnclose.lo: src/libstddjb/readnclose.c src/include/skalibs/allreadwrite.h src/include/skalibs/djbunix.h src/libstddjb/rm_rf.o src/libstddjb/rm_rf.lo: src/libstddjb/rm_rf.c src/include/skalibs/djbunix.h src/include/skalibs/skamisc.h src/libstddjb/rm_rf_in_tmp.o src/libstddjb/rm_rf_in_tmp.lo: src/libstddjb/rm_rf_in_tmp.c src/include/skalibs/djbunix.h src/include/skalibs/stralloc.h diff --git a/src/include/skalibs/prog.h b/src/include/skalibs/prog.h new file mode 100644 index 0000000..de23e1f --- /dev/null +++ b/src/include/skalibs/prog.h @@ -0,0 +1,18 @@ +/* ISC license. */ + +#ifndef SKALIBS_PROG_H +#define SKALIBS_PROG_H + +#include <stddef.h> +#include <skalibs/types.h> + +extern char const *PROG ; + +#define PROG_pid_len(name) (sizeof(name) + 5 + PID_FMT) + +#define PROG_pid_fill(buf, name) prog_pid_fill(buf, (name), sizeof(name)-1) +#define PROG_pid_set(buf, name) do { PROG_pid_fill(buf, name) ; PROG = buf ; } while (0) + +extern void prog_pid_fill (char *, char const *, size_t) ; + +#endif diff --git a/src/include/skalibs/stddjb.h b/src/include/skalibs/stddjb.h index ab5bcaf..d57a3df 100644 --- a/src/include/skalibs/stddjb.h +++ b/src/include/skalibs/stddjb.h @@ -39,6 +39,7 @@ #include <skalibs/iopause.h> #include <skalibs/lolstdio.h> #include <skalibs/netstring.h> +#include <skalibs/prog.h> #include <skalibs/segfault.h> #include <skalibs/selfpipe.h> #include <skalibs/setgroups.h> diff --git a/src/include/skalibs/strerr.h b/src/include/skalibs/strerr.h index 2448981..2ece01e 100644 --- a/src/include/skalibs/strerr.h +++ b/src/include/skalibs/strerr.h @@ -4,6 +4,7 @@ #define SKALIBS_STRERR_H #include <skalibs/gccattributes.h> +#include <skalibs/prog.h> extern void strerr_warnv (char const *const *, unsigned int) ; extern void strerr_warnvsys (char const *const *, unsigned int) ; @@ -21,8 +22,6 @@ extern void strerr_dievsys(int, char const *const *, unsigned int) gccattr_noret #define strerr_die(e, ...) strerr_dien(e, sizeof(strerr_array(__VA_ARGS__))/sizeof(char const *), __VA_ARGS__) #define strerr_diesys(e, ...) strerr_diensys(e, sizeof(strerr_array(__VA_ARGS__))/sizeof(char const *), __VA_ARGS__) -extern char const *PROG ; - #define strerr_warnwn(n, ...) strerr_warnn((n)+2, PROG, ": warning: ", __VA_ARGS__) #define strerr_warnwnsys(n, ...) strerr_warnnsys((n)+2, PROG, ": warning: ", __VA_ARGS__) #define strerr_warnfn(n, ...) strerr_warnn((n)+2, PROG, ": fatal: ", __VA_ARGS__) diff --git a/src/libstddjb/prog_pid_fill.c b/src/libstddjb/prog_pid_fill.c new file mode 100644 index 0000000..1214b04 --- /dev/null +++ b/src/libstddjb/prog_pid_fill.c @@ -0,0 +1,15 @@ +/* ISC license. */ + +#include <string.h> +#include <unistd.h> + +#include <skalibs/types.h> +#include <skalibs/prog.h> + +void prog_pid_fill (char *s, char const *name, size_t len) +{ + memcpy(s, name, len) ; s += len ; + memcpy(s, ": pid ", 6) ; s += 6 ; + s += pid_fmt(s, pid_fmt(s, getpid())) ; + *s++ = 0 ; +} |
