19 Commits

Author SHA1 Message Date
Andrew Pamment
988151d11a qwknet added to main makefile 2018-11-04 17:45:02 +10:00
Dan Cross
e8eef519ed Whitespace cleanups: trailing spaces.
Remove them.

Signed-off-by: Dan Cross <patchdev@fat-dragon.org>
2018-10-31 09:31:14 +10:00
Andrew Pamment
abb20b63b5 Experimental 'make install' 2018-10-26 12:13:32 +10:00
Andrew Pamment
fc590d9608 New tree thing for www. 2018-10-21 18:24:26 +10:00
Andrew Pamment
714fd09742 Change makefile cleaning a bit 2018-10-19 18:13:07 +10:00
Dan Cross
aacb1000c8 Arrays to vectors.
This is the big push to get rid of the last of the
unadorned dynamic arrays.  Use ptr_vectors for things
like mail conferences etc.

Lots of incidental cleanup along the way.

Signed-off-by: Dan Cross <patchdev@fat-dragon.org>
2018-10-17 13:11:25 +10:00
Andrew Pamment
c3e21a5228 Add support for MUSL on Linux 2018-10-16 13:48:47 +10:00
Andrew Pamment
c3636ec6d5 More dragonfly fixes 2018-10-12 18:11:05 +10:00
Andrew Pamment
d4329eb287 Makefile tweaks for sunos and macos 2018-10-12 15:58:29 +10:00
Dan Cross
1c7849b724 Fix a bug in stralloc_starts() and add a test.
strcalloc_starts() should have tested the return value
of `memcmp` against 0 for equality.  Fixed and added a
test case.

As an aside, one might wonder how bugs like that are
creeping into well-tested code imported from other
projects?  The answer, specific to stralloc, is that
the original code was very specific to qmail, and used
a number of additional functions specific to qmail.

Rather than import half of qmail, the version imported
into Magicka has been reworked to, instead, use
standard C functions.  The process of modifying the
code gave rise to the opportunity for bugs to creep in.
Now that a unit testing framework is in place, we can
test things in isolation more easily and hopefully
catch such things BEFORE they are published to the
master repository.

Signed-off-by: Dan Cross <patchdev@fat-dragon.org>
2018-10-11 21:36:29 +10:00
Dan Cross
6d30116ed9 Import strlcpy/strlcat from OpenBSD, start using them.
strcpy()/strcat() are inherently dangerous, even when
used with great care.  strlcpy() and strlcat() are
much safer replacements, and are available from OpenBSD
under a very liberal license.  Import them and start
using them.

Between pointer vectors, malloz, stralloc and now
strlcpy/strlcat, Magicka has much safer, simpler and
more performant infrastructure for dealing with
strings and dynamic collections of various kinds.

Signed-off-by: Dan Cross <patchdev@fat-dragon.org>
2018-10-11 13:58:49 +10:00
Andrew Pamment
e196292503 Merge branch 'master' of ssh://git.magickabbs.com/home/andrew/repositories/MagickaBBS 2018-10-11 11:47:53 +10:00
Dan Cross
9a7ceeee3d Import a (modernized) version of djb's stralloc library.
Lots of code in Magicka is involved in dynamic string manipulation.
`stralloc` isn't a bad library for this sort of thing.

Note that this is complements, but doesn't replace, existing string
utilities.

Signed-off-by: Dan Cross <patchdev@fat-dragon.org>
2018-10-11 11:45:12 +10:00
Andrew Pamment
d80037d30e build magimail 2018-10-10 11:47:09 +10:00
Andrew Pamment
dd1b386ff8 fix the makefile fix 2018-10-10 11:30:01 +10:00
Andrew Pamment
38ace58668 fix build script 2018-10-10 11:22:38 +10:00
Dan Cross
fa014f3a88 Simplify dynamic memory management.
Add utility routines and use them to simplify the
use of dynamically allocated memory.

Signed-off-by: Dan Cross <patchdev@fat-dragon.org>
2018-10-10 10:25:29 +10:00
Dan Cross
187cf02903 More GNUmakefile cleanups.
With the normalization of magimail's Makefile,
we can further simplify this logic.

Integrate the WWW logic into GNUmakefile.common.

Remove the custom `Makefile.sunos` files: just
use a conditional in the Makefile.

Signed-off-by: Dan Cross <patchdev@fat-dragon.org>
2018-10-10 10:25:26 +10:00
Dan Cross
4ed5319798 Rewrite non-WWW makefiles.
Delegate most of the logic to a "common" GNUmakefile,
with each system-specific GNUmakefile only setting a
handful of necessary variables.

Signed-off-by: Dan Cross <patchdev@fat-dragon.org>
2018-10-10 10:22:26 +10:00