| /* | 
 |  * Copyright (C) 2002     Manuel Novoa III | 
 |  * Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org> | 
 |  * | 
 |  * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. | 
 |  */ | 
 |  | 
 | #include <features.h> | 
 | #include <stdio.h> | 
 | #include <string.h> | 
 | #include <signal.h> | 
 |  | 
 |  | 
 | /* TODO: make this threadsafe with a reentrant version of strsignal? */ | 
 |  | 
 | void psignal(int signum, register const char *message) | 
 | { | 
 | 	/* If the program is calling psignal, it's a safe bet that printf and | 
 | 	 * friends are used as well.  It is also possible that the calling | 
 | 	 * program could buffer stderr, or reassign it. */ | 
 |  | 
 | 	register const char *sep; | 
 |  | 
 | 	sep = ": "; | 
 | 	if (!(message && *message)) { /* Caller did not supply a prefix message */ | 
 | 		message = (sep += 2);	/* or passed an empty string. */ | 
 | 	} | 
 |  | 
 | 	fprintf(stderr, "%s%s%s\n", message, sep, strsignal(signum)); | 
 | } |