Tree for my work on http://tools.suckless.org/quark/
Find a file
Laslo Hunhold 283bf91a0e Add normabspath() to replace realpath(), making quark work with musl
Compiled against musl, quark will not work as musl needs the presence
of procfs to process paths in realpath().
We could wait for it to be implemented[0] or also notice that we don't
want to overengineer the target-resolving. I don't think it's very
suckless if we deploy such a huge infrastructure to resolve paths.

To counteract this and given there are no good solutions available, I
set out to write the function normabspath(), which normalizes an
absolute path.
It is idempotent and works on the buffer passed to it. We don't need a
target, as the resulting resolved path is guaranteed to be of equal
length or shorter. This requires a memcpy in our case before calling it,
but I see it as a nice demonstration of the possibilities and it might
prove to be useful for other projects.

Not requiring a target buffer (that needs to have its length specified),
the one-string-call also simplifies the calling semantics drasticly.

With this function in place, quark works with musl. Statically linked,
stripped and with -Os, it only weighs 102K.

[0]: http://www.openwall.com/lists/musl/2016/11/03/5
2017-06-21 10:35:40 +02:00
arg.h Initial commit of quark rewrite 2016-09-02 09:59:02 +02:00
config.def.h Rewrite quark from the ground up again 2017-06-20 21:40:00 +02:00
config.mk Rewrite quark from the ground up again 2017-06-20 21:40:00 +02:00
LICENSE Rewrite quark from the ground up again 2017-06-20 21:40:00 +02:00
Makefile Rewrite quark from the ground up again 2017-06-20 21:40:00 +02:00
quark.1 Initial commit of quark rewrite 2016-09-02 09:59:02 +02:00
quark.c Add normabspath() to replace realpath(), making quark work with musl 2017-06-21 10:35:40 +02:00