This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Convert miniperl sources to ANSI C. Several passes of
[perl5.git] / miniperlmain.c
1 /*
2  * "The Road goes ever on and on, down from the door where it began."
3  */
4
5 #ifdef OEMVS
6 #pragma runopts(HEAP(1M,32K,ANYWHERE,KEEP,8K,4K))
7 #endif
8
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12
13 #include "EXTERN.h"
14 #include "perl.h"
15
16 #ifdef __cplusplus
17 }
18 #  define EXTERN_C extern "C"
19 #else
20 #  define EXTERN_C extern
21 #endif
22
23 static void xs_init _((void));
24 static PerlInterpreter *my_perl;
25
26 int
27 #ifdef CAN_PROTOTYPE
28 main(int argc, char **argv, char **env)
29 #else
30 main(argc, argv, env)
31 int argc;
32 char **argv;
33 char **env;
34 #endif
35 {
36     int exitstatus;
37
38     PERL_SYS_INIT(&argc,&argv);
39
40     perl_init_i18nl10n(1);
41
42     if (!do_undump) {
43         my_perl = perl_alloc();
44         if (!my_perl)
45             exit(1);
46         perl_construct( my_perl );
47         perl_destruct_level = 0;
48     }
49
50     exitstatus = perl_parse( my_perl, xs_init, argc, argv, (char **) NULL );
51     if (!exitstatus) {
52         exitstatus = perl_run( my_perl );
53     }
54
55     perl_destruct( my_perl );
56     perl_free( my_perl );
57
58     PERL_SYS_TERM();
59
60     exit( exitstatus );
61 }
62
63 /* Register any extra external extensions */
64
65 /* Do not delete this line--writemain depends on it */
66
67 static void
68 xs_init(void)
69 {
70   dXSUB_SYS;
71 }