File e3-2.6.0-gcc4.patch of Package e3

diff -ur e3-2.6-4/e3c/e3.c e3-2.6/e3c/e3.c
--- e3-2.6-4/e3c/e3.c	2002-04-27 17:43:29.000000000 +0200
+++ e3-2.6/e3c/e3.c	2005-04-28 17:43:25.209034054 +0200
@@ -224,7 +224,7 @@
 #define RETURN	goto *(*esp--)
 #define CALL(calladr,retadr) *++esp=(long)&&_loc##retadr; goto calladr; _loc##retadr:
 #define PUSH(arg) *++esp=arg
-#define POP(arg) (long*)arg=*esp--
+#define POP(arg) arg=(long)(*esp--)
 
 int main(int argc,char**argv,char **envp)
 {
@@ -904,7 +904,7 @@
 	CALL(sys_writeKP,93);		// restore old cursor pos
 NoWrite:POP(edi);
 	POP(esi);
-	POP(ebp);
+	ebp=(long *)*(esp--);
 	POP(ebx);
 	POP(edx);
 	POP(ecx);
@@ -1296,7 +1296,7 @@
 Ins0:	POP(edi);			// here is the jmp destination from DeleteByte
 //------
 	changed = CHANGED;
-	(long)ebp+=eax;
+	ebp+=eax;
 	if ((unsigned long)edi>=(unsigned long)blockende) goto Ins1;
 	blockende+=eax;
 Ins1:	if ((unsigned long)edi>=(unsigned long)blockbegin) goto Ins2;
@@ -1546,7 +1546,7 @@
 RSno_lineNr:CALL(StatusLineShow,156);	// now write all at once
 	POP(edi);
 	POP(esi);
-	POP(ebp);
+	ebp=(long *)*(esp--);
 	POP(ebx);
 	POP(edx);
 	POP(ecx);
@@ -1576,7 +1576,7 @@
 	CALL(StatusLineShow,158);
 	POP(edi);
 	POP(esi);
-	POP(ebp);
+	ebp=(long *)*(esp--);
 	POP(ebx);
 	POP(edx);
 	POP(ecx);
openSUSE Build Service is sponsored by