X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=cmd.h;h=be047eaadbc490da41e9ef22f960e66361b8cad2;hb=55204971972392ce5a252fbbd6d78b1c48ed70e3;hp=3a1d83235373744edde5d6e00afee25fed6d5e14;hpb=03a14243eca2d4d041778dac4abcfa3a19c06a56;p=p5sagit%2Fp5-mst-13.2.git diff --git a/cmd.h b/cmd.h index 3a1d832..be047ea 100644 --- a/cmd.h +++ b/cmd.h @@ -1,16 +1,17 @@ -/* $Header: cmd.h,v 3.0.1.1 89/10/26 23:05:43 lwall Locked $ +/* $RCSfile: cmd.h,v $$Revision: 4.0.1.1 $$Date: 91/06/07 10:28:50 $ * - * Copyright (c) 1989, Larry Wall + * Copyright (c) 1991, Larry Wall * - * You may distribute under the terms of the GNU General Public License - * as specified in the README file that comes with the perl 3.0 kit. + * You may distribute under the terms of either the GNU General Public + * License or the Artistic License, as specified in the README file. * * $Log: cmd.h,v $ - * Revision 3.0.1.1 89/10/26 23:05:43 lwall - * patch1: unless was broken when run under the debugger + * Revision 4.0.1.1 91/06/07 10:28:50 lwall + * patch4: new copyright notice + * patch4: length($`), length($&), length($') now optimized to avoid string copy * - * Revision 3.0 89/10/18 15:09:15 lwall - * 3.0 baseline + * Revision 4.0 91/03/20 01:04:34 lwall + * 4.0 baseline. * */ @@ -72,6 +73,8 @@ char *cmdname[] = { #define CFT_INDGETS 11 /* c_expr is <$variable> */ #define CFT_NUMOP 12 /* c_expr is a numeric comparison */ #define CFT_CCLASS 13 /* c_expr must start with one of these characters */ +#define CFT_D0 14 /* no special breakpoint at this line */ +#define CFT_D1 15 /* possible special breakpoint at this line */ #ifdef DEBUGGING #ifndef DOINIT @@ -127,16 +130,34 @@ struct cmd { struct scmd scmd; /* switch command */ } ucmd; short c_slen; /* len of c_short, if not null */ - short c_flags; /* optimization flags--see above */ - char *c_file; /* file the following line # is from */ + VOLATILE short c_flags; /* optimization flags--see above */ + HASH *c_stash; /* package line was compiled in */ + STAB *c_filestab; /* file the following line # is from */ line_t c_line; /* line # of this command */ char c_type; /* what this command does */ }; #define Nullcmd Null(CMD*) +#define Nullcsv Null(CSV*) -EXT CMD *main_root INIT(Nullcmd); -EXT CMD *eval_root INIT(Nullcmd); +EXT CMD * VOLATILE main_root INIT(Nullcmd); +EXT CMD * VOLATILE eval_root INIT(Nullcmd); + +EXT CMD compiling; +EXT CMD * VOLATILE curcmd INIT(&compiling); +EXT CSV * VOLATILE curcsv INIT(Nullcsv); + +struct callsave { + SUBR *sub; + STAB *stab; + CSV *curcsv; + CMD *curcmd; + ARRAY *savearray; + ARRAY *argarray; + long depth; + int wantarray; + char hasargs; +}; struct compcmd { CMD *comp_true; @@ -144,5 +165,5 @@ struct compcmd { }; void opt_arg(); -void evalstatic(); +ARG* evalstatic(); int cmd_exec();