This is b_demo1.c in view mode; [Download] [Up]
#include <string.h>
/* predefined exceptions */
char constraint_error = 0;
char numeric_error = 0;
char program_error = 0;
char storage_error = 0;
char tasking_error = 0;
char _abort_signal = 1;
static int static_argc;
static char * *static_argv;
int arg_count () { return static_argc; }
int len_arg (arg_num)
int arg_num;
{ return strlen(static_argv[arg_num]); }
int fill_arg (a, i)
char * a;
int i;
{ strncpy (a, static_argv[i],
strlen(static_argv[i])); }
extern void (*system__tasking_soft_links__abort_defer) ();
extern char *system__task_specific_data__get_gnat_exception ();
extern int *system__task_specific_data__get_jmpbuf_address ();
extern char debug__get_debug_flag_k ();
void
__gnat_raise_nodefer (except)
char *except;
{
int *ptr = system__task_specific_data__get_jmpbuf_address ();
system__task_specific_data__set_gnat_exception (except);
if (ptr)
longjmp (ptr, 1);
else
{
if (except == &constraint_error)
puts ("\nraised Constraint_Error\n");
else if (except == &numeric_error)
puts ("\nraised Numeric_Error\n");
else if (except == &program_error)
puts ("\nraised Program_Error\n");
else if (except == &storage_error)
puts ("\nraised Storage_Error\n");
else if (except == &tasking_error)
puts ("\nraised Tasking_Error\n");
else if (!ptr)
puts ("\nraised unhandled exception\n");
exit (1);
}
}
void
__gnat_raise (except)
char *except;
{
(*system__tasking_soft_links__abort_defer) ();
__gnat_raise_nodefer (except);
}
void
__gnat_reraise (flag)
int flag;
{
char *except = system__task_specific_data__get_gnat_exception ();
if (flag)
__gnat_raise (except);
else
__gnat_raise_nodefer (except);
}
void
__gnat_raise_constraint_error ()
{
__gnat_raise (&constraint_error);
}
int gnat_exit_status = 0;
void
set_gnat_exit_status (i)
int i;
{
gnat_exit_status = i;
}
int
__main_priority ()
{
return -1;
}
void main (argc, argv)
int argc;
char * argv[];
{
static_argc = argc;
static_argv = argv;
system__tasking_soft_links___elabs ();
system__task_specific_data___elabb ();
instr___elabs ();
_ada_demo1 ();
exit (gnat_exit_status);
}
/* BEGIN Object file list
/usr/local/lib/gcc-lib/m68k-next-ns3/2.6.0/adalib/ada.o
/usr/local/lib/gcc-lib/m68k-next-ns3/2.6.0/adalib/system.o
/usr/local/lib/gcc-lib/m68k-next-ns3/2.6.0/adalib/a-tags.o
/usr/local/lib/gcc-lib/m68k-next-ns3/2.6.0/adalib/s-stoele.o
/usr/local/lib/gcc-lib/m68k-next-ns3/2.6.0/adalib/s-taspda.o
/usr/local/lib/gcc-lib/m68k-next-ns3/2.6.0/adalib/s-tasoli.o
/usr/local/lib/gcc-lib/m68k-next-ns3/2.6.0/adalib/s-stalib.o
instr.o
/usr/local/lib/gcc-lib/m68k-next-ns3/2.6.0/adalib/io.o
demo1.o
END Object file list */
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.