fix infinite loop in getopt processing; rel 3 c lang spec does not specify signedness of char -- it could be either signed or unsigned depending on the machine. since code relies on signed char make it explicit, otherwise loop never ends on machines with unsigned char (which happens to be aarch64 with gcc 10)