1/*
2 * Copyright 2005-2006, Axel D��rfler, axeld@pinc-software.de.
3 * Distributed under the terms of the MIT License.
4 */
5
6
7#include <setjmp.h>
8#include <stdio.h>
9
10
11static void
12jump_to_top_level(jmp_buf *state, int value)
13{
14	siglongjmp(*state, value);
15}
16
17
18int
19main(int argc, char **argv)
20{
21	jmp_buf state;
22	int value;
23
24	if ((value = sigsetjmp(state, 1)) != 0) {
25		printf("failed with: %d!\n", value);
26	} else {
27		printf("here I am: %d\n", value);
28		jump_to_top_level(&state, 42);
29		printf("you won't see me!\n");
30	}
31
32	puts("done.");
33	return 0;
34}
35