A portable implementation of getopt