modified:   portability.c