remove _() non-ansism
[p5sagit/p5-mst-13.2.git] / ext / B / byteperl.c
CommitLineData
a8a597b2 1#include "EXTERN.h"
2#include "perl.h"
a8a597b2 3
20ce7b12 4static void xs_init (void);
a8a597b2 5static PerlInterpreter *my_perl;
6
7int
8#ifndef CAN_PROTOTYPE
9main(argc, argv, env)
10int argc;
11char **argv;
12char **env;
13#else /* def(CAN_PROTOTYPE) */
14main(int argc, char **argv, char **env)
15#endif /* def(CAN_PROTOTYPE) */
16{
17 int exitstatus;
18 int i;
19 char **fakeargv;
20 FILE *fp;
21#ifdef INDIRECT_BGET_MACROS
22 struct bytestream bs;
23#endif /* INDIRECT_BGET_MACROS */
24
25 INIT_SPECIALSV_LIST;
26 PERL_SYS_INIT(&argc,&argv);
27
a8a597b2 28 perl_init_i18nl10n(1);
a8a597b2 29
6b88bc9c 30 if (!PL_do_undump) {
a8a597b2 31 my_perl = perl_alloc();
32 if (!my_perl)
b7b1864f 33#ifdef VMS
34 exit(vaxc$errno);
35#else
a8a597b2 36 exit(1);
b7b1864f 37#endif
a8a597b2 38 perl_construct( my_perl );
39 }
40
41#ifdef CSH
6b88bc9c 42 if (!PL_cshlen)
43 PL_cshlen = strlen(PL_cshname);
a8a597b2 44#endif
45
46 if (argc < 2)
47 fp = stdin;
48 else {
49#ifdef WIN32
50 fp = fopen(argv[1], "rb");
51#else
52 fp = fopen(argv[1], "r");
53#endif
54 if (!fp) {
55 perror(argv[1]);
b7b1864f 56#ifdef VMS
57 exit(vaxc$errno);
58#else
a8a597b2 59 exit(1);
b7b1864f 60#endif
a8a597b2 61 }
62 argv++;
63 argc--;
64 }
65 New(666, fakeargv, argc + 4, char *);
66 fakeargv[0] = argv[0];
67 fakeargv[1] = "-e";
68 fakeargv[2] = "";
69 fakeargv[3] = "--";
70 for (i = 1; i < argc; i++)
71 fakeargv[i + 3] = argv[i];
72 fakeargv[argc + 3] = 0;
73
74 exitstatus = perl_parse(my_perl, xs_init, argc + 3, fakeargv, NULL);
75 if (exitstatus)
76 exit( exitstatus );
77
78 sv_setpv(GvSV(gv_fetchpv("0", TRUE, SVt_PV)), argv[0]);
6b88bc9c 79 PL_main_cv = PL_compcv;
80 PL_compcv = 0;
a8a597b2 81
82#ifdef INDIRECT_BGET_MACROS
83 bs.data = fp;
20ce7b12 84 bs.fgetc = (int(*) (void*))fgetc;
85 bs.fread = (int(*) (char*,size_t,size_t,void*))fread;
a8a597b2 86 bs.freadpv = freadpv;
87 byterun(bs);
88#else
89 byterun(fp);
90#endif /* INDIRECT_BGET_MACROS */
91
92 exitstatus = perl_run( my_perl );
93
94 perl_destruct( my_perl );
95 perl_free( my_perl );
96
97 exit( exitstatus );
98}
99
100static void
101xs_init()
102{
103}