gg: prepend "Server says" to the reply code

gg: print the response header for non-2x replies to standard error

gg: exit with the gemini response code 0 is still used for 2X replies, and "external" failures (e.g. network, tls, ...) are still using exit code 1. Gemini non-2x replies now get their response code reported as-is as status code.


revert previous Somehow the compat for __dead is not working properly on macos (cirrus ci) since it complains that parse_debug() does not return a value in all control paths when it uses usage() (marked as __dead) to catch a wrong usage.

use __dead instead of __attribute__((noreturn))

gg: warn when the TLS layer is not closed properly various servers are not handling correctly the close notify so for the moment don't turn this into an hard error but just warn. Hopefully, given some time, most servers will be fixed. while here, drop the gotos and just use a break to exit the main loop.

avoid arithmetic on void pointers (GNU extension) not really sold on this one, I don't see what other interpretation could be given, but it's not standard so...

call setlocale()

always cast is*() arguments to unsigned char

remove -v from gg undocumented flag to dump to stdout the request before doing it. Not useful, it's debugging leftover.

specify custom version strings for the various cmds


shuffle the code a bit to improve readability

fix and sync gg usage