diff options
Diffstat (limited to 'multimedia/swfdec/patches/patch-ab')
-rw-r--r-- | multimedia/swfdec/patches/patch-ab | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/multimedia/swfdec/patches/patch-ab b/multimedia/swfdec/patches/patch-ab new file mode 100644 index 00000000000..4b980a44235 --- /dev/null +++ b/multimedia/swfdec/patches/patch-ab @@ -0,0 +1,65 @@ +$NetBSD: patch-ab,v 1.1 2005/06/04 10:41:42 jmmv Exp $ + +--- player/swf_play.c.orig Wed Feb 5 20:19:27 2003 ++++ player/swf_play.c Mon May 12 11:43:12 2003 +@@ -15,6 +15,8 @@ + #include <signal.h> + #include <sys/wait.h> + #include <sys/time.h> ++#include <sys/signal.h> ++#include <errno.h> + #include <time.h> + #include <string.h> + +@@ -72,6 +74,15 @@ + static gboolean render_idle(gpointer data); + + /* fault handling stuff */ ++#ifndef SI_USER ++typedef struct { ++ char *si_addr; ++ int si_signo; ++ int si_errno; ++ int si_code; ++} siginfo_t; ++#endif ++ + void fault_handler(int signum, siginfo_t *si, void *misc); + void fault_restore(void); + void fault_setup(void); +@@ -539,6 +550,20 @@ + _exit(0); + } + ++#ifndef SI_USER ++void si_handler(int sig, int code, struct sigcontext *scp) ++{ ++ siginfo_t si; ++ ++ si.si_addr = NULL; ++ si.si_signo = sig; ++ si.si_errno = errno; ++ si.si_code = code; ++ ++ fault_handler(sig, &si, scp); ++} ++#endif ++ + void fault_restore(void) + { + struct sigaction action; +@@ -555,8 +580,13 @@ + struct sigaction action; + + memset(&action,0,sizeof(action)); ++#ifdef SI_USER + action.sa_sigaction = fault_handler; +- action.sa_flags = SA_SIGINFO; ++ action.sa_flags = 0; ++#else ++ action.sa_handler = (void (*)(int))si_handler; ++ action.sa_flags = 0; ++#endif + + sigaction(SIGSEGV, &action, NULL); + sigaction(SIGQUIT, &action, NULL); |