Commits


document macros: both -D and syntax


don't require the strict order macro > options > servers


add -D to define macros from the cmd line


allow to define macros in the config file Macros can be defined at the top of the configuration file: dir = "/var/gemini" cert = "/etc/keys" and re-used later, for example server "foo" { root "$dir/foo" # -> /var/gemini/foo cert "$cert/foo.pem" # -> /etc/keys/foo.pem }


trailing whitespaces


give a name to the anonymous union


sync the usage; while there also change order and capitalize


mention -V/--version and --help in the manpage


define GMID_STRING and reuse-it GMID_VERSION follows the CGI/FastCGI style, i.e. project_name/version. Define GMID_STRING with a more "human" variant "project_name version", and reuse that in the --help and --version codepath.


add version in usage


use getprogname() in usage()


use getopt_long, add --help as synonym of -h and -V/--version


document `log' option


strncpy -> strlcpy quoting strncpy(3) strncpy() only NUL terminates the destination string when the length of the source string is less than the length parameter. strlcpy is more intuitive. this is another warning gcc 8 found that clang didn't.


make sure l is always initialized I can't think of cases where we reach serialize_iri and path is NULL, but let's keep the safe side and initialize l. gcc 8 found this, clang didn't.