Trying to write my library to be completely unreliant on the CRT (since that has far too many versions to deal with), I've gotten past a number of issues in doing that but replacing the SIGINT etc has eluded me. Here's what I've got so far (I know there's codes taking matching numbers on the win32 variant at the moment but for now they're just to indicate to me what I can possibly work with):

Code:
#ifndef INC_PAWSIG_H
#	define INC_PAWSIG_H
#	include "../pawsys.h"
PAW_OPEN_C_API
extern const int *_pawsig_list;
extern const int _pawsig_leng;
PAW_API void _pawinit_pawsig_list(void);
enum
{
	_PAWSIG_NONE = 0,
	_PAWSIG_HANG_UP,
	_PAWSIG_UNDEF_INST,
#	define PAWSIG_UNDEF_INST _pawsig_list[_PAWSIG_UNDEF_INST]
	_PAWSIG_UNDEF_MATH,
#	define PAWSIG_UNDEF_MATH _pawsig_list[_PAWSIG_UNDEF_MATH]
	_PAWSIG_URGENT_SOCKET_IO,
	_PAWSIG_ERROR_BREAKPOINT,
	_PAWSIG_FORCE_BREAKPOINT,
	_PAWSIG_KEYBD_BREAKPOINT,
	_PAWSIG_DEBUG_BREAKPOINT,
	_PAWSIG_TIMER_BREAKPOINT,
	_PAWSIG_RESUME_EXECUTION,
	_PAWSIG_BACKGROUND_TTYRD,
#	define PAWSIG_BACKGROUND_TTYRD _pawsig_list[_PAWSIG_BACKGROUND_TTYRD]
	_PAWSIG_BACKGROUND_TTYWR,
#	define PAWSIG_BACKGROUND_TTYWR _pawsig_list[_PAWSIG_BACKGROUND_TTYWR]
	_PAWSIG_EXCEEDED_ENTSIZE,
	_PAWSIG_EXCEEDED_CPUTIME,
	_PAWSIG_FAULTY_PIPE_HOOK,
	_PAWSIG_FAULTY_LOCATION,
	_PAWSIG_FORCE_TERMINATE,
	_PAWSIG_ORDER_TERMINATE,
	_PAWSIG_ASKED_TERMINATE,
	_PAWSIG_WEIRD_TERMINATE,
	_PAWSIG_IO_STATE_CHANGE,
	_PAWSIG_CHILD_PROC_DIED,
	_PAWSIG_CUSTOM_MSG_CODE,
	_PAWSIG_CUSTOM_MSG_TEXT,
	/* Just in case there's signals I haven't accounted for to start with */
	_PAWSIG_COUNT = 0xFF
};

#	ifdef CODE_PAW
int _pawsig_list_[_PAWSIG_COUNT = {0};
const int *_pawsig_list = _pawsig_list_;
const int _pawsig_leng = _PAWSIG_COUNT;
#		ifdef PAW_API_MSW
PAW_API void _pawinit_pawsig_list(void)
{
	_pawsig_list_[ _PAWSIG_NONE ] = 0;
	_pawsig_list_[ _PAWSIG_HANG_UP ] =;
	_pawsig_list_[ _PAWSIG_UNDEF_INST ] = CTRL_C_EVENT;
	_pawsig_list_[ _PAWSIG_UNDEF_MATH ] =;
	_pawsig_list_[ _PAWSIG_URGENT_SOCKET_IO ] =;
	_pawsig_list_[ _PAWSIG_ERROR_BREAKPOINT ] =;
	_pawsig_list_[ _PAWSIG_FORCE_BREAKPOINT ] = -CTRL_BREAK_EVENT;
	_pawsig_list_[ _PAWSIG_KEYBD_BREAKPOINT ] = WM_KEYDOWN;
	_pawsig_list_[ _PAWSIG_DEBUG_BREAKPOINT ] = CTRL_BREAK_EVENT;
	_pawsig_list_[ _PAWSIG_TIMER_BREAKPOINT ] = WM_TIMER;
	_pawsig_list_[ _PAWSIG_RESUME_EXECUTION ] =;
	_pawsig_list_[ _PAWSIG_BACKGROUND_TTYRD ] =;
	_pawsig_list_[ _PAWSIG_BACKGROUND_TTYWR ] =;
	_pawsig_list_[ _PAWSIG_EXCEEDED_ENTSIZE ] =;
	_pawsig_list_[ _PAWSIG_EXCEEDED_CPUTIME ] =;
	_pawsig_list_[ _PAWSIG_FAULTY_PIPE_HOOK ] =;
	_pawsig_list_[ _PAWSIG_FAULTY_LOCATION ] = -WM_APP;
	_pawsig_list_[ _PAWSIG_FORCE_TERMINATE ] = WM_QUIT;
	_pawsig_list_[ _PAWSIG_ORDER_TERMINATE ] = WM_ENDSESSION;
	_pawsig_list_[ _PAWSIG_ASKED_TERMINATE ] = WM_QUERYENDSESSION;
	_pawsig_list_[ _PAWSIG_WEIRD_TERMINATE ] = -WM_QUIT;
	_pawsig_list_[ _PAWSIG_IO_STATE_CHANGE ] = WM_INPUT_DEVICE_CHANGE;
	_pawsig_list_[ _PAWSIG_CHILD_PROC_DIED ] = -WM_QUIT;
	_pawsig_list_[ _PAWSIG_CUSTOM_MSG_CODE ] = WM_APP;
	_pawsig_list_[ _PAWSIG_CUSTOM_MSG_TEXT ] = 0xC000;
};
#else
#include <signal.h>
/* Used bits/signum-generic.h on my linux build to decide these */
PAW_API void _pawinit_pawsig_list(void)
{
	_pawsig_list_[ _PAWSIG_HANG_UP	] = SIGHUP;
	_pawsig_list_[ _PAWSIG_UNDEF_INST	] = SIGILL;
	_pawsig_list_[ _PAWSIG_UNDEF_MATH	] = SIGFPE;
	_pawsig_list_[ _PAWSIG_URGENT_SOCKET_IO	] = SIGURG;
	_pawsig_list_[ _PAWSIG_ERROR_BREAKPOINT	] = SIGINT;
	_pawsig_list_[ _PAWSIG_FORCE_BREAKPOINT	] = SIGSTOP;
	_pawsig_list_[ _PAWSIG_KEYBD_BREAKPOINT	] = SIGTSTP;
	_pawsig_list_[ _PAWSIG_DEBUG_BREAKPOINT ] = SIGTRAP;
	_pawsig_list_[ _PAWSIG_TIMER_BREAKPOINT	] = SIGALRM;
	_pawsig_list_[ _PAWSIG_RESUME_EXECUTION	] = SIGCONT;
	_pawsig_list_[ _PAWSIG_BACKGROUND_TTYRD	] = SIGTTIN;
	_pawsig_list_[ _PAWSIG_BACKGROUND_TTYWR	] = SIGTTOU;
	_pawsig_list_[ _PAWSIG_EXCEEDED_ENTSIZE	] = SIGXFSZ;
	_pawsig_list_[ _PAWSIG_EXCEEDED_CPUTIME	] = SIGXCPU;
	_pawsig_list_[ _PAWSIG_FAULTY_PIPE_HOOK	] = SIGPIPE;
	_pawsig_list_[ _PAWSIG_FAULTY_LOCATION	] = SIGSEGV;
	_pawsig_list_[ _PAWSIG_FORCE_TERMINATE	] = SIGKILL;
	_pawsig_list_[ _PAWSIG_ORDER_TERMINATE	] = SIGTERM;
	_pawsig_list_[ _PAWSIG_ASKED_TERMINATE	] = SIGQUIT;
#		ifdef SIGABRT
	_pawsig_list_[ _PAWSIG_WEIRD_TERMINATE	] = SIGABRT;
#		else
	_pawsig_list_[ _PAWSIG_WEIRD_TERMINATE	] = SIGIOT;
#		endif
#		ifdef SIGPOLL
	_pawsig_list_[ _PAWSIG_IO_STATE_CHANGE	] = SIGPOLL;
#		else
	_pawsig_list_[ _PAWSIG_IO_STATE_CHANGE	] = SIGIO;
#		endif
#		ifdef SIGCHLD
	_pawsig_list_[ _PAWSIG_CHILD_PROC_DIED	] = SIGCHLD;
#		else
	_pawsig_list_[ _PAWSIG_CHILD_PROC_DIED	] = SIGCLD;
#		endif
	_pawsig_list_[ _PAWSIG_CUSTOM_MSG_CODE ] = SIGUSR1;
	_pawsig_list_[ _PAWSIG_CUSTOM_MSG_TEXT ] = SIGUSR2;
};
#		endif
#	endif
PAW_SHUT_C_API
#endif