perl 4.0 patch 24: patch #20, continued
[p5sagit/p5-mst-13.2.git] / cmd.h
diff --git a/cmd.h b/cmd.h
index 0c4a0b8..3260335 100644 (file)
--- a/cmd.h
+++ b/cmd.h
@@ -1,19 +1,20 @@
-/* $Header: cmd.h,v 3.0.1.2 90/02/28 16:39:36 lwall Locked $
+/* $RCSfile: cmd.h,v $$Revision: 4.0.1.2 $$Date: 92/06/08 12:01:02 $
  *
- *    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.2  90/02/28  16:39:36  lwall
- * patch9: volatilized some more variables for super-optimizing compilers
+ * Revision 4.0.1.2  92/06/08  12:01:02  lwall
+ * patch20: removed implicit int declarations on funcions
  * 
- * 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.
  * 
  */
 
@@ -75,6 +76,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
@@ -131,21 +134,43 @@ struct cmd {
     } ucmd;
     short      c_slen;         /* len of c_short, if not null */
     VOLATILE short c_flags;    /* optimization flags--see above */
-    char       *c_file;        /* file the following line # is from */
+    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 * 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;
     CMD *comp_alt;
 };
 
 void opt_arg();
-void evalstatic();
+ARG* evalstatic();
 int cmd_exec();
+#ifdef DEBUGGING
+void deb();
+#endif
+int copyopt();