File: jbwrap.h

package info (click to toggle)
rc 1.7.1-4
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 884 kB
  • sloc: ansic: 7,121; sh: 722; yacc: 124; makefile: 100
file content (23 lines) | stat: -rw-r--r-- 675 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <setjmp.h>

/* If we have POSIX sigjmp_buf and friends, use them.  If we don't, just
use a jmp_buf.  This probably fails on a traditional SysV machine, where
jmp_bufs don't preserve signal masks.  I'm not worrying about this till
someone reports it as a bug :-). */

#if HAVE_SIGSETJMP
#else
#define sigjmp_buf jmp_buf
#define sigsetjmp(x,y) setjmp(x)
#define siglongjmp longjmp
#endif /* HAVE_SIGSETJMP */


/* Certain braindamaged environments don't define jmp_buf as an array,
so wrap it in a structure.  Potentially, we could use configure to do
this only where it needs to be done, but the effort is probably not
worth it. */

struct Jbwrap {
	sigjmp_buf j;
};