Tigher option handling - implement custom option handler because getopt_long doesn't cut it.
Plus non-portable