freebsd-ports/shells/v7sh/files/patch-mode.h
Alexander Botero-Lowry 5b5d658096 - unbreak on gcc 4.1
PR:		103902
Submitted by:	trasz <trasz@pin.if.uz.zgora.pl>
Approved by:	novel (mentor, implicit)
2006-10-07 07:22:11 +00:00

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;
+};