s |I32 |lop |I32 f|int x|NN char *s
rs |void |missingterm |NULLOK char *s
s |void |no_op |NN const char *what|NULLOK char *s
-s |void |set_csh
sR |I32 |sublex_done
sR |I32 |sublex_push
sR |I32 |sublex_start
#define lop S_lop
#define missingterm S_missingterm
#define no_op S_no_op
-#define set_csh S_set_csh
#define sublex_done S_sublex_done
#define sublex_push S_sublex_push
#define sublex_start S_sublex_start
#define lop(a,b,c) S_lop(aTHX_ a,b,c)
#define missingterm(a) S_missingterm(aTHX_ a)
#define no_op(a,b) S_no_op(aTHX_ a,b)
-#define set_csh() S_set_csh(aTHX)
#define sublex_done() S_sublex_done(aTHX)
#define sublex_push() S_sublex_push(aTHX)
#define sublex_start() S_sublex_start(aTHX)
#define PL_comppad_name_floor (vTHX->Icomppad_name_floor)
#define PL_cop_seqmax (vTHX->Icop_seqmax)
#define PL_cryptseen (vTHX->Icryptseen)
-#define PL_cshlen (vTHX->Icshlen)
-#define PL_cshname (vTHX->Icshname)
#define PL_curcop (vTHX->Icurcop)
#define PL_curcopdb (vTHX->Icurcopdb)
#define PL_curpad (vTHX->Icurpad)
#define PL_Icomppad_name_floor PL_comppad_name_floor
#define PL_Icop_seqmax PL_cop_seqmax
#define PL_Icryptseen PL_cryptseen
-#define PL_Icshlen PL_cshlen
-#define PL_Icshname PL_cshname
#define PL_Icurcop PL_curcop
#define PL_Icurcopdb PL_curcopdb
#define PL_Icurpad PL_curpad
PERLVAR(Istatusvalue_posix,I32)
#endif
-#ifdef CSH
-PERLVARI(Icshlen, I32, 0)
-PERLVARI(Icshname, const char *, CSH)
-#endif
-
/* shortcuts to various I/O objects */
PERLVAR(Istdingv, GV *)
PERLVAR(Istderrgv, GV *)
EXTCONST char PL_memory_wrap[]
INIT("panic: memory wrap");
+#ifdef CSH
+EXTCONST char PL_cshname[]
+ INIT(CSH);
+# define PL_cshlen (sizeof(CSH "") - 1)
+#endif
+
EXTCONST char PL_uuemap[65]
INIT("`!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_");
#define PL_cop_seqmax (*Perl_Icop_seqmax_ptr(aTHX))
#undef PL_cryptseen
#define PL_cryptseen (*Perl_Icryptseen_ptr(aTHX))
-#undef PL_cshlen
-#define PL_cshlen (*Perl_Icshlen_ptr(aTHX))
-#undef PL_cshname
-#define PL_cshname (*Perl_Icshname_ptr(aTHX))
#undef PL_curcop
#define PL_curcop (*Perl_Icurcop_ptr(aTHX))
#undef PL_curcopdb
STATIC void S_no_op(pTHX_ const char *what, char *s)
__attribute__nonnull__(pTHX_1);
-STATIC void S_set_csh(pTHX);
STATIC I32 S_sublex_done(pTHX)
__attribute__warn_unused_result__;
PL_runops = proto_perl->Irunops;
-#ifdef CSH
- PL_cshlen = proto_perl->Icshlen;
- PL_cshname = proto_perl->Icshname; /* XXX never deallocated */
-#endif
-
PL_parser = parser_dup(proto_perl->Iparser, param);
PL_subline = proto_perl->Isubline;
newSVOP(OP_CONST, 0, &PL_sv_undef), /* value will be read later */
newCVREF(0, newGVOP(OP_GV, 0, gv_readpipe))));
}
- else {
- set_csh();
- }
}
#ifdef PERL_MAD
UNI(OP_EACH);
case KEY_exec:
- set_csh();
LOP(OP_EXEC,XREF);
case KEY_endhostent:
OPERATOR(GIVEN);
case KEY_glob:
- set_csh();
LOP(OP_GLOB,XTERM);
case KEY_hex:
UNI(OP_READDIR);
case KEY_readline:
- set_csh();
UNIDOR(OP_READLINE);
case KEY_readpipe:
- set_csh();
UNIDOR(OP_BACKTICK);
case KEY_rewinddir:
}
case KEY_system:
- set_csh();
LOP(OP_SYSTEM,XREF);
case KEY_symlink:
if (d - PL_tokenbuf != len) {
yylval.ival = OP_GLOB;
- set_csh();
s = scan_str(start,!!PL_madskills,FALSE);
if (!s)
Perl_croak(aTHX_ "Glob not terminated");
return s;
}
-STATIC void
-S_set_csh(pTHX)
-{
-#ifdef CSH
- dVAR;
- if (!PL_cshlen)
- PL_cshlen = strlen(PL_cshname);
-#else
-#if defined(USE_ITHREADS)
- PERL_UNUSED_CONTEXT;
-#endif
-#endif
-}
-
I32
Perl_start_subparse(pTHX_ I32 is_format, U32 flags)
{