PR: 103902 Submitted by: trasz <trasz@pin.if.uz.zgora.pl> Approved by: novel (mentor, implicit)
148 lines
2.8 KiB
C
148 lines
2.8 KiB
C
--- mode.h.orig Mon Oct 2 15:16:25 2006
|
|
+++ mode.h Mon Oct 2 15:17:01 2006
|
|
@@ -1,6 +1,10 @@
|
|
#
|
|
/*
|
|
* UNIX shell
|
|
+ *
|
|
+ * S. R. Bourne
|
|
+ * Bell Telephone Laboratories
|
|
+ *
|
|
*/
|
|
|
|
|
|
@@ -10,23 +14,38 @@
|
|
TYPE char BOOL;
|
|
TYPE int UFD;
|
|
TYPE int INT;
|
|
+TYPE unsigned UINT;
|
|
TYPE float REAL;
|
|
TYPE char *ADDRESS;
|
|
-TYPE long int L_INT;
|
|
-TYPE int VOID;
|
|
-TYPE unsigned POS;
|
|
+TYPE long LONG;
|
|
+TYPE void VOID;
|
|
+TYPE size_t POS;
|
|
TYPE char *STRING;
|
|
+TYPE CONST char *CSTRING;
|
|
TYPE char MSG[];
|
|
+TYPE CONST char CMSG[];
|
|
TYPE int PIPE[];
|
|
TYPE char *STKPTR;
|
|
+TYPE const char *CSTKPTR;
|
|
TYPE char *BYTPTR;
|
|
|
|
-STRUCT stat STATBUF; /* defined in /usr/sys/stat.h */
|
|
+TYPE clock_t CLOCK;
|
|
+TYPE mode_t MODE;
|
|
+TYPE off_t OFFSET;
|
|
+TYPE sig_t SIGPTR;
|
|
+TYPE size_t SIZE;
|
|
+TYPE time_t TIME;
|
|
+TYPE uid_t UID;
|
|
+
|
|
+STRUCT dirent *DIRPTR; /* defined in dirent.h */
|
|
+STRUCT stat STATBUF; /* defined in sys/stat.h */
|
|
+STRUCT tms TIMEBUF; /* defined in sys/time.h */
|
|
+
|
|
STRUCT blk *BLKPTR;
|
|
STRUCT fileblk FILEBLK;
|
|
STRUCT filehdr FILEHDR;
|
|
-STRUCT fileblk *FILE;
|
|
-STRUCT trenod *TREPTR;
|
|
+STRUCT fileblk *FILEPTR;
|
|
+UNION trenod *TREPTR;
|
|
STRUCT forknod *FORKPTR;
|
|
STRUCT comnod *COMPTR;
|
|
STRUCT swnod *SWPTR;
|
|
@@ -43,8 +62,7 @@
|
|
STRUCT namnod *NAMPTR;
|
|
STRUCT sysnod SYSNOD;
|
|
STRUCT sysnod *SYSPTR;
|
|
-STRUCT sysnod SYSTAB[];
|
|
-#define NIL ((char*)0)
|
|
+#define NIL ((void*)0)
|
|
|
|
|
|
/* the following nonsense is required
|
|
@@ -52,8 +70,12 @@
|
|
* into an Rvalue so two cheats
|
|
* are necessary, one for each context.
|
|
*/
|
|
-union { int _cheat;};
|
|
-#define Lcheat(a) ((a)._cheat)
|
|
+#if defined(RENO)
|
|
+#define Lcheat(a) (*(int *)&(a))
|
|
+#else /* V7 */
|
|
+union _cheat { int _cheat;};
|
|
+#define Lcheat(a) ((*(union _cheat *)&(a))._cheat)
|
|
+#endif
|
|
#define Rcheat(a) ((int)(a))
|
|
|
|
|
|
@@ -69,11 +91,13 @@
|
|
BLKPTR _blkptr;
|
|
NAMPTR _namptr;
|
|
BYTPTR _bytptr;
|
|
- } address;
|
|
+} address;
|
|
|
|
|
|
+#if defined(V7)
|
|
/* for functions that do not return values */
|
|
struct void {INT vvvvvvvv;};
|
|
+#endif
|
|
|
|
|
|
/* heap storage */
|
|
@@ -90,7 +114,7 @@
|
|
STRING fnxt;
|
|
STRING fend;
|
|
STRING *feval;
|
|
- FILE fstak;
|
|
+ FILEPTR fstak;
|
|
CHAR fbuf[BUFSIZ];
|
|
};
|
|
|
|
@@ -103,20 +127,16 @@
|
|
STRING fnxt;
|
|
STRING fend;
|
|
STRING *feval;
|
|
- FILE fstak;
|
|
+ FILEPTR fstak;
|
|
CHAR _fbuf[1];
|
|
};
|
|
|
|
struct sysnod {
|
|
- STRING sysnam;
|
|
+ CSTRING sysnam;
|
|
INT sysval;
|
|
};
|
|
|
|
-/* this node is a proforma for those that follow */
|
|
-struct trenod {
|
|
- INT tretyp;
|
|
- IOPTR treio;
|
|
-};
|
|
+STRUCT sysnod SYSTAB[];
|
|
|
|
/* dummy for access only */
|
|
struct argnod {
|
|
@@ -203,3 +223,16 @@
|
|
#define PARTYPE (sizeof(struct parnod))
|
|
#define LSTTYPE (sizeof(struct lstnod))
|
|
#define IOTYPE (sizeof(struct ionod))
|
|
+
|
|
+/* this node is a proforma for those that precede */
|
|
+union trenod {
|
|
+ struct { INT tretyp; IOPTR treio; } treio;
|
|
+ struct forknod forknod;
|
|
+ struct comnod comnod;
|
|
+ struct ifnod ifnod;
|
|
+ struct whnod whnod;
|
|
+ struct fornod fornod;
|
|
+ struct swnod swnod;
|
|
+ struct parnod parnod;
|
|
+ struct lstnod lstnod;
|
|
+};
|