home *** CD-ROM | disk | FTP | other *** search
- /*
- * "The Road goes ever on and on, down from the door where it began."
- */
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- #include "EXTERN.h"
- #include "perl.h"
-
- #ifdef __cplusplus
- }
- # define EXTERN_C extern "C"
- #else
- # define EXTERN_C extern
- #endif
-
- static void xs_init _((void));
- static PerlInterpreter *my_perl;
-
- int
- #ifdef CAN_PROTOTYPE
- main(int argc, char **argv, char **env)
- #else
- main(argc, argv, env)
- int argc;
- char **argv;
- char **env;
- #endif
- {
- int exitstatus;
-
- PERL_SYS_INIT(&argc,&argv);
-
- perl_init_i18nl14n(1);
-
- #if !defined(macintosh) || !defined(MULTIPLICITY)
- if (!do_undump) {
- #endif
- #ifdef macintosh
- if (!gDebugLogName || !(gPerlDbg = fopen(gDebugLogName, "w")))
- gPerlDbg = stderr;
- #endif
- #ifdef MALLOC_LOG
- MallocLog("Allocating...\n");
- #endif
- my_perl = perl_alloc();
- if (!my_perl)
- exit(1);
- #ifdef MALLOC_LOG
- MallocLog("Constructing...\n");
- #endif
- perl_construct( my_perl );
- #if !defined(macintosh) || !defined(MULTIPLICITY)
- }
- #endif
-
- #ifdef MALLOC_LOG
- MallocLog("Parsing...\n");
- #endif
- exitstatus = perl_parse( my_perl, xs_init, argc, argv, (char **) NULL );
- if (!exitstatus) {
-
- #ifdef MALLOC_LOG
- MallocLog("Running...\n");
- #endif
- exitstatus = perl_run( my_perl );
-
- }
-
- #ifdef MALLOC_LOG
- MallocLog("Destructing...\n");
- #endif
- perl_destruct( my_perl );
- #ifdef MALLOC_LOG
- MallocLog("Freeing...\n");
- #endif
- perl_free( my_perl );
- #ifdef MALLOC_LOG
- MallocLog("That's all, folks...\n");
- #endif
-
- PERL_SYS_TERM();
-
- exit( exitstatus );
- }
-
- /* Register any extra external extensions */
-
- /* Do not delete this line--writemain depends on it */
-
- static void
- xs_init()
- {
- dXSUB_SYS;
- }
-