- char * p1 = "Trouble in ";
- char * p2 = " with ";
- char * p3 = ".";
- uint16_t size = strlen(p1) + strlen(parent) + strlen(p2) + strlen(child)
- + strlen(p3) + 1;
- char * msg = malloc(size);
- exit_err(NULL == msg, "malloc() in trouble_msg() failed.");
- sprintf(msg, "%s%s%s%s%s", p1, parent, p2, child, p3);
- return msg;
+ /* Constants as recommended by POSIX.1-2001 (see man page rand(3)). */
+ world.seed = ((world.seed * 1103515245) + 12345) % 4294967296;
+ return (world.seed >> 16); /* Ignore less random least significant bits. */