home *** CD-ROM | disk | FTP | other *** search
- #include <setjmp.h>
- #include <stdlib.h>
- #include <stdio.h>
-
- jmp_buf main_loop;
-
- void
- abort_to_main_loop (int status)
- {
- longjmp (main_loop, status);
- }
-
- int
- main (void)
- {
- while (1)
- if (setjmp (main_loop))
- puts ("Back at main loop....");
- else
- do_command ();
- }
-
-
- void
- do_command (void)
- {
- char buffer[128];
- if (fgets (buffer, 128, stdin) == NULL)
- abort_to_main_loop (-1);
- else
- exit (EXIT_SUCCESS);
- }
-