From 75ea20675d012e692996bc6beae9149b0deb08b0 Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Fri, 5 Nov 2021 18:52:11 +0100 Subject: initial commit --- example.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 example.c (limited to 'example.c') diff --git a/example.c b/example.c new file mode 100644 index 0000000..e9f57d5 --- /dev/null +++ b/example.c @@ -0,0 +1,44 @@ +#include +#include +#include +#include + +#include "ste.h" + +/* example of libste usage: iterate over $PATH and append argv[1], + print the entries that fit into PATH_MAX. */ + +int +main(int argc, char *argv[]) +{ + char *path = getenv("PATH"); + if (!path) + path = ""; + + char *program = argc > 1 ? argv[1] : "xyzzy"; + + char *pathend = path + strlen(path); + + char buf[PATH_MAX]; + char *bufend = buf + sizeof buf; + + while (1) { + char *pos = buf; + + char *colon = stechr(path, pathend, ':'); + if (path == colon) /* empty entry */ + pos = stecpy(buf, bufend, "."); + else + pos = stecpe(buf, bufend, path, colon); + + pos = steprn(pos, bufend, "/%s", program); + + if (pos < bufend) { /* no trunaction */ + printf("%s\n", buf); + } + + if (colon == pathend) + break; + path = colon + 1; + } +} -- cgit 1.4.1