diff -uwrN cfront-1a/CC cfront-1b/CC
--- cfront-1a/CC	1986-02-07 16:31:54.000000000 +0100
+++ cfront-1b/CC	2007-09-22 16:05:11.000000000 +0200
@@ -1,11 +1,27 @@
 #ident	"@(#)cfront:CC	1.7"
 #!/bin/sh
+
+# -----------------------------------------
+
+	CF=~/projects/cfront-1b
+	
+	cfrontC=$CF/cfront
+	LIBRARY=$CF/libC.a
+	I=$CF/incl
+	Y="-Du3b"
+	
+	ccC="gcc -w"
+	cppC="cpp"
+	munch=$CF/munch
+
+# -----------------------------------------
+
 LIB_ID=${LIB_ID-C}
 LIBRARY=${LIBRARY--l${LIB_ID}}
 NMFLAGS=${NMFLAGS-}
 C= EE=0 FON=
 O=
-PON= R= SUF= X= Y= DASHR= PLUSI=
+PON= R= SUF= X= Y=${Y-} DASHR= PLUSI=
 Z=
 E=0
 CF=
@@ -170,7 +186,7 @@
 				cat __err
 			elif test  "$DASHR" != 1		# find ctors/dtors
 			then
-				nm $NMFLAGS $OO | munch $P >__ctdt.c
+				nm $NMFLAGS $OO | $munch $P >__ctdt.c
 				case $? in
 				1)	$ccC -c __ctdt.c >/dev/null
 					#echo "ld $Z __ctdt.o $LIBRARY -lc"
diff -uwrN cfront-1a/incl/complex.h cfront-1b/incl/complex.h
--- cfront-1a/incl/complex.h	1986-02-07 16:31:57.000000000 +0100
+++ cfront-1b/incl/complex.h	2007-09-22 15:17:21.000000000 +0200
@@ -58,7 +58,7 @@
 ostream& operator<<(ostream&, complex);
 istream& operator>>(istream&, complex&);
 
-extern int errno;
+//extern int errno;
 
 inline double real(complex& a)
 {
diff -uwrN cfront-1a/incl/ctype.h cfront-1b/incl/ctype.h
--- cfront-1a/incl/ctype.h	1986-02-07 16:31:57.000000000 +0100
+++ cfront-1b/incl/ctype.h	2007-09-22 15:17:21.000000000 +0200
@@ -9,7 +9,7 @@
 #define	_B	0100	/* Blank */
 #define	_X	0200	/* heXadecimal digit */
 
-#ifndef lint
+#if 0// ndef lint
 extern char	_ctype[];
 
 #define	isalpha(c)	((_ctype + 1)[c] & (_U | _L))
@@ -31,3 +31,15 @@
 
 extern int toupper (int);
 extern int tolower (int);
+
+int isalnum(int);
+int isalpha(int);
+int iscntrl(int);
+int isdigit(int);
+int isgraph(int);
+int islower(int);
+int isprint(int);
+int ispunct(int);
+int isspace(int);
+int isupper(int);
+int isxdigit(int);
diff -uwrN cfront-1a/incl/errno.h cfront-1b/incl/errno.h
--- cfront-1a/incl/errno.h	1986-02-07 16:31:59.000000000 +0100
+++ cfront-1b/incl/errno.h	2007-09-22 15:17:21.000000000 +0200
@@ -5,4 +5,5 @@
  */
 
 #include <sys/errno.h>
-extern int errno;
+extern int* _get_errno();
+#define errno (*_get_errno())
diff -uwrN cfront-1a/incl/generic.h cfront-1b/incl/generic.h
--- cfront-1a/incl/generic.h	1986-02-07 16:32:00.000000000 +0100
+++ cfront-1b/incl/generic.h	2007-09-22 15:17:21.000000000 +0200
@@ -22,3 +22,15 @@
 #define set_handler(generic,type,x) name4(set_,type,generic,_handler)(x)
 #define errorhandler(generic,type) name3(type,generic,handler)
 #define callerror(generic,type,a,b) (*errorhandler(generic,type))(a,b)
+
+#ifndef _name2_aux
+#define _name2_aux(a,b) a##b
+#define _name3_aux(a,b,c) a##b##c
+#define _name4_aux(a,b,c,d)  a##b##c##d
+#endif
+#undef name2
+#undef name3
+#undef name4
+#define name2(a,b) _name2_aux(a,b)
+#define name3(a,b,c) _name3_aux(a,b,c)
+#define name4(a,b,c,d) _name4_aux(a,b,c,d)
diff -uwrN cfront-1a/incl/malloc.h cfront-1b/incl/malloc.h
--- cfront-1a/incl/malloc.h	1986-02-07 16:32:01.000000000 +0100
+++ cfront-1b/incl/malloc.h	2007-09-22 15:17:21.000000000 +0200
@@ -30,5 +30,5 @@
 extern void free(char*);
 extern char *realloc(char*, unsigned);
 extern int mallopt(int, int);
-extern mallinfo mallinfo(int);
+// extern mallinfo mallinfo(int);
 extern char *calloc (unsigned, unsigned);
diff -uwrN cfront-1a/incl/math.h cfront-1b/incl/math.h
--- cfront-1a/incl/math.h	1986-02-07 16:32:02.000000000 +0100
+++ cfront-1b/incl/math.h	2007-09-22 15:17:21.000000000 +0200
@@ -1,7 +1,7 @@
 /* @(#) math.h 1.4 1/27/86 17:46:49 */
 /*ident	"@(#)cfront:incl/math.h	1.4"*/
 #ifndef _POLY9
-extern int errno, signgam;
+//extern int errno, signgam;
 
 extern int abs (int);
 extern double atof(const char*), frexp(double, int*);
diff -uwrN cfront-1a/incl/stdio.h cfront-1b/incl/stdio.h
--- cfront-1a/incl/stdio.h	1986-02-07 16:32:06.000000000 +0100
+++ cfront-1b/incl/stdio.h	2007-09-22 15:17:21.000000000 +0200
@@ -6,9 +6,9 @@
 
 #ifndef va_start
 typedef char *va_list;  //for the declaration of vprintf, vfprintf, vsprintf.
+#define va_start /
 #endif
-
-# ifndef FILE
+#if 0 //ndef FILE
 extern	struct	_iobuf {
 	int	_cnt;
 	char	*_ptr;
@@ -35,7 +35,7 @@
 
 extern int _flsbuf(unsigned,FILE*);
 extern int _filbuf(FILE*);
-
+#if 0
 #define	stdin (&_iob[0])
 #define	stdout (&_iob[1])
 #define	stderr (&_iob[2])
@@ -46,7 +46,7 @@
 #define	feof(p) (((p)->_flag&_IOEOF)!=0)
 #define	ferror(p) (((p)->_flag&_IOERR)!=0)
 #define	fileno(p) ((p)->_file)
-
+#endif
 extern FILE* fopen(const char*, const char*);
 extern FILE* fdopen(int, const char*);
 extern FILE* freopen(const char*, const char*, FILE*);
@@ -105,7 +105,28 @@
 
 extern void perror (const char*);
 
-extern int errno;
+// extern int errno;
 extern char* sys_errlist[];
 extern int sys_nerr;
 extern unsigned char *_bufendtab[];
+
+int feof(FILE *p);
+int ferror(FILE *p);
+int fileno(FILE *p);
+char* strerror(int);
+
+extern FILE* _get_stdin();
+extern FILE* _get_stdout();
+extern FILE* _get_stderr();
+
+#ifndef stdin
+#define stdin  _get_stdin()
+#define stdout _get_stdout()
+#define stderr _get_stderr()
+#define getc(fp) fgetc(fp)
+#define getchar() getc(stdin)
+#define putc(c,fp) fputc(c,fp)
+#define putchar(c) putc(c,stdout)
+#endif
+
+void _main();
diff -uwrN cfront-1a/incl/sys/errno.h cfront-1b/incl/sys/errno.h
--- cfront-1a/incl/sys/errno.h	1970-01-01 01:00:00.000000000 +0100
+++ cfront-1b/incl/sys/errno.h	2007-09-22 15:17:21.000000000 +0200
@@ -0,0 +1,53 @@
+/*
+ * Error numbers.
+ * TODO: Can't be sure of some of these assignments, I guessed from the
+ * names given by strerror and the defines in the Cygnus errno.h. A lot
+ * of the names from the Cygnus errno.h are not represented, and a few
+ * of the descriptions returned by strerror do not obviously match
+ * their error naming.
+ */
+#define EPERM          1       /* Operation not permitted */
+#define        ENOFILE         2       /* No such file or directory */
+#define        ENOENT          2
+#define        ESRCH           3       /* No such process */
+#define        EINTR           4       /* Interrupted function call */
+#define        EIO             5       /* Input/output error */
+#define        ENXIO           6       /* No such device or address */
+#define        E2BIG           7       /* Arg list too long */
+#define        ENOEXEC         8       /* Exec format error */
+#define        EBADF           9       /* Bad file descriptor */
+#define        ECHILD          10      /* No child processes */
+#define        EAGAIN          11      /* Resource temporarily unavailable */
+#define        ENOMEM          12      /* Not enough space */
+#define        EACCES          13      /* Permission denied */
+#define        EFAULT          14      /* Bad address */
+/* 15 - Unknown Error */
+#define        EBUSY           16      /* strerror reports "Resource device" */
+#define        EEXIST          17      /* File exists */
+#define        EXDEV           18      /* Improper link (cross-device link?) */
+#define        ENODEV          19      /* No such device */
+#define        ENOTDIR         20      /* Not a directory */
+#define        EISDIR          21      /* Is a directory */
+#define        EINVAL          22      /* Invalid argument */
+#define        ENFILE          23      /* Too many open files in system */
+#define        EMFILE          24      /* Too many open files */
+#define        ENOTTY          25      /* Inappropriate I/O control operation */
+/* 26 - Unknown Error */
+#define        EFBIG           27      /* File too large */
+#define        ENOSPC          28      /* No space left on device */
+#define        ESPIPE          29      /* Invalid seek (seek on a pipe?) */
+#define        EROFS           30      /* Read-only file system */
+#define        EMLINK          31      /* Too many links */
+#define        EPIPE           32      /* Broken pipe */
+#define        EDOM            33      /* Domain error (math functions) */
+#define        ERANGE          34      /* Result too large (possibly too small) */
+/* 35 - Unknown Error */
+#define        EDEADLOCK       36      /* Resource deadlock avoided (non-Cyg) */
+#define        EDEADLK         36
+/* 37 - Unknown Error */
+#define        ENAMETOOLONG    38      /* Filename too long (91 in Cyg?) */
+#define        ENOLCK          39      /* No locks available (46 in Cyg?) */
+#define        ENOSYS          40      /* Function not implemented (88 in Cyg?) */
+#define        ENOTEMPTY       41      /* Directory not empty (90 in Cyg?) */
+#define        EILSEQ          42      /* Illegal byte sequence */
+
diff -uwrN cfront-1a/lib/complex/pow.c cfront-1b/lib/complex/pow.c
--- cfront-1a/lib/complex/pow.c	1986-02-07 16:32:22.000000000 +0100
+++ cfront-1b/lib/complex/pow.c	2007-09-22 15:17:21.000000000 +0200
@@ -8,7 +8,7 @@
 	real to complex power: base**z.
 */
 {
-	register complex y;
+       /*register*/ complex y;
 	
 	if (base == 0) return y;	/* even for singularity */
 
@@ -29,7 +29,7 @@
 	complex to integer power: a**n.
 */
 {
-	register complex x, p = 1;
+       /*register*/ complex x, p = 1;
 
 	if (n == 0) return p;
 
diff -uwrN cfront-1a/lib/mk/makefile cfront-1b/lib/mk/makefile
--- cfront-1a/lib/mk/makefile	1986-02-07 16:32:29.000000000 +0100
+++ cfront-1b/lib/mk/makefile	2007-09-22 15:24:24.000000000 +0200
@@ -3,19 +3,21 @@
 			polar.o pow.o sin.o sqrt.o
 O_GENERIC	=	generic.o
 O_NEW		=	_delete.o _handler.o _new.o _vec.o
-O_STATIC	=	_ctor.o _dtor.o _main.o exit.o dtors.o
+O_STATIC       =       _ctor.o _dtor.o _main.o dtors.o _stdio.o #exit.o
 O_STREAM	=	circbuf.o filebuf.o in.o out.o streambuf.o
 O_TASK		=	obj.o qhead.o qtail.o sched.o sim.o \
 			swap.o task.o timer.o
 OFILES	=	$(O_COMPLEX) $(O_GENERIC) $(O_NEW) \
-			$(O_STATIC) $(O_STREAM) $(O_TASK)
+                       $(O_STATIC) $(O_STREAM) #$(O_TASK)
 CC	=	CC
 CCFLAGS	=
 
-libC.a:	$(O_COMPLEX) $(O_GENERIC) $(O_NEW) $(O_STATIC) $(O_STREAM) Task
+libC.a:        $(O_COMPLEX) $(O_GENERIC) $(O_NEW) $(O_STATIC) $(O_STREAM) #Task
 	ar r libC.a $(OFILES)
 	if test "$(BSD)" ; then ranlib libC.a; fi
 
+_stdio.o : _stdio..c
+	gcc -c $< -o $@
 
 Task:
 	if vax; then \
diff -uwrN cfront-1a/lib/mk/_stdio..c cfront-1b/lib/mk/_stdio..c
--- cfront-1a/lib/mk/_stdio..c	1970-01-01 01:00:00.000000000 +0100
+++ cfront-1b/lib/mk/_stdio..c	2007-09-22 15:17:21.000000000 +0200
@@ -0,0 +1,24 @@
+/* stdio.c */
+
+#include <stdio.h>
+#include <errno.h>
+
+FILE* _get_stdin()
+{
+    return stdin;
+}
+
+FILE* _get_stdout()
+{
+    return stdout;
+}
+
+FILE* _get_stderr()
+{
+    return stderr;
+}
+
+int* _get_errno()
+{
+    return &errno;
+}
diff -uwrN cfront-1a/lib/static/_main.c cfront-1b/lib/static/_main.c
--- cfront-1a/lib/static/_main.c	1986-02-07 16:32:36.000000000 +0100
+++ cfront-1b/lib/static/_main.c	2007-09-22 15:17:21.000000000 +0200
@@ -5,5 +5,10 @@
 {
 	typedef void (*PFV)();
 	extern PFV _ctors[];
+
+       extern int atexit(void*);
+       extern void dtors();
+       atexit((void*)dtors);
+
 	for (PFV* pf=_ctors; *pf; pf++) (**pf)();
 }
diff -uwrN cfront-1a/makefile cfront-1b/makefile
--- cfront-1a/makefile	1986-02-07 16:32:49.000000000 +0100
+++ cfront-1b/makefile	2007-09-22 15:35:54.000000000 +0200
@@ -3,8 +3,9 @@
 #	and set CCFLAGS=-DBSD
 #	also set BSD=1
 
-CCFLAGS=-O
+CCFLAGS=-Os
 BSD=
+PATH:=$(CURDIR):$(PATH)
 
 #For first make (bootstrap):
 #	make scratch		#on system V, BSD 4.1 or earlier
@@ -40,7 +41,7 @@
 	if test ! -d scratch/src; then mkdir scratch/src; fi
 	if test ! -d scratch/mnch; then mkdir scratch/mnch; fi
 	if test ! -d scratch/lib; then mkdir scratch/lib; fi
-	cd src; yacc gram.y
+#       cd src; yacc gram.y
 	cd scratch/src; $(CC) -I../../src -I../../incl -Fc -..c ../../src/*.c;
 	cd scratch/lib; $(CC) -I../../lib/complex \
 		 -I../../incl -Fc -..c ../../lib/new/*.c
@@ -50,5 +51,7 @@
 #Dont need a real munch here:
 	echo "main(){ exit(0); }" >scratch/mnch/munch..c
 	chmod +x CC patch/CC scratch/bsd.sed
+	cp lib/mk/_stdio..c     scratch/lib/_stdio..c
+	rm -f scratch/lib/exit..c
 
 always:	
diff -uwrN cfront-1a/scratch/lib/exit..c cfront-1b/scratch/lib/exit..c
--- cfront-1a/scratch/lib/exit..c	1986-02-07 16:36:04.000000000 +0100
+++ cfront-1b/scratch/lib/exit..c	1970-01-01 01:00:00.000000000 +0100
@@ -1,36 +0,0 @@
-#line 1 "../../lib/static/exit.c"
-
-/* <<cfront 10/10/85>> */
-/* < ../../lib/static/exit.c */
-int * _new ( ) ; 
-int _delete ( ) ; 
-int * _vec_new ( ) ; 
-int _vec_delete ( ) ; 
-
-#line 1 "../../lib/static/exit.c"
-
-#line 4 "../../lib/static/exit.c"
-extern int _exit ( ) ; 
-
-#line 5 "../../lib/static/exit.c"
-extern int _cleanup ( ) ; 
-
-#line 6 "../../lib/static/exit.c"
-extern int dtors ( ) ; 
-
-#line 8 "../../lib/static/exit.c"
-extern int exit ( _auto_i ) int _auto_i ; 
-
-#line 9 "../../lib/static/exit.c"
-{ 
-#line 9 "../../lib/static/exit.c"
-dtors ( ) ; 
-
-#line 11 "../../lib/static/exit.c"
-_cleanup ( ) ; 
-
-#line 12 "../../lib/static/exit.c"
-_exit ( _auto_i ) ; 
-} ; 
-
-/* the end */
diff -uwrN cfront-1a/scratch/lib/_main..c cfront-1b/scratch/lib/_main..c
--- cfront-1a/scratch/lib/_main..c	1986-02-07 16:36:03.000000000 +0100
+++ cfront-1b/scratch/lib/_main..c	2007-09-22 15:17:21.000000000 +0200
@@ -18,11 +18,20 @@
 
 #line 7 "../../lib/static/_main.c"
 extern PFV _ctors [ ] ; 
+
+#line 9 "../../lib/static/_main.c"
+extern int atexit ( ) ; 
+
+#line 10 "../../lib/static/_main.c"
+extern int dtors ( ) ; 
 PFV * _auto_pf ; 
 
-#line 8 "../../lib/static/_main.c"
+#line 11 "../../lib/static/_main.c"
+atexit ( ( ( int * ) ( dtors ) ) ) ; 
+
+#line 13 "../../lib/static/_main.c"
 for ( _auto_pf = _ctors ;( * _auto_pf ) ;( _auto_pf ++ ) ) ( * ( * 
-#line 8 "../../lib/static/_main.c"
+#line 13 "../../lib/static/_main.c"
 _auto_pf ) ) ( ) ; 
 } ; 
 
diff -uwrN cfront-1a/scratch/lib/_stdio..c cfront-1b/scratch/lib/_stdio..c
--- cfront-1a/scratch/lib/_stdio..c	1970-01-01 01:00:00.000000000 +0100
+++ cfront-1b/scratch/lib/_stdio..c	2007-09-22 15:17:21.000000000 +0200
@@ -0,0 +1,24 @@
+/* stdio.c */
+
+#include <stdio.h>
+#include <errno.h>
+
+FILE* _get_stdin()
+{
+    return stdin;
+}
+
+FILE* _get_stdout()
+{
+    return stdout;
+}
+
+FILE* _get_stderr()
+{
+    return stderr;
+}
+
+int* _get_errno()
+{
+    return &errno;
+}
diff -uwrN cfront-1a/scratch/makefile cfront-1b/scratch/makefile
--- cfront-1a/scratch/makefile	1986-02-07 16:32:56.000000000 +0100
+++ cfront-1b/scratch/makefile	2007-09-22 15:59:15.000000000 +0200
@@ -1,6 +1,6 @@
 #ident	"@(#)cfront:scratch/makefile	1.3"
 LIBFILES=_ctor..o _delete..o _dtor..o _handler..o \
-_main..o _new..o _vec..o dtors..o exit..o
+_main..o _new..o _vec..o dtors..o _stdio..o #exit..o
 
 SRCFILES=alloc..o dcl..o dcl2..o del..o error..o \
 expand..o expr..o expr2..o lalex..o lex..o \
@@ -23,6 +23,9 @@
 cfront: libC.a $(SRCFILES)
 	cc -o cfront $(SRCFILES) libC.a
 
+_stdio..o:	lib/_stdio..c
+	cc -c lib/_stdio..c
+
 _ctor..o:	lib/_ctor..c
 	cc -c lib/_ctor..c
 
diff -uwrN cfront-1a/scratch/src/alloc..c cfront-1b/scratch/src/alloc..c
--- cfront-1a/scratch/src/alloc..c	1986-02-07 16:33:01.000000000 +0100
+++ cfront-1b/scratch/src/alloc..c	2007-09-22 15:17:21.000000000 +0200
@@ -10,18 +10,6 @@
 #line 1 "../../src/alloc.c"
 typedef char * va_list ; 
 
-#line 12 "../../incl/stdio.h"
-struct _iobuf { /* sizeof = 16 */
-int __iobuf__cnt ; 
-char * __iobuf__ptr ; 
-char * __iobuf__base ; 
-char __iobuf__flag ; 
-char __iobuf__file ; 
-} ; 
-
-#line 20 "../../incl/stdio.h"
-extern struct _iobuf _iob [ 20] ; 
-
 #line 36 "../../incl/stdio.h"
 extern int _flsbuf ( ) ; 
 
@@ -160,9 +148,6 @@
 #line 106 "../../incl/stdio.h"
 extern int perror ( ) ; 
 
-#line 108 "../../incl/stdio.h"
-extern int errno ; 
-
 #line 109 "../../incl/stdio.h"
 extern char * sys_errlist [ ] ; 
 
@@ -172,6 +157,30 @@
 #line 111 "../../incl/stdio.h"
 extern unsigned char * _bufendtab [ ] ; 
 
+#line 113 "../../incl/stdio.h"
+int feof ( ) ; 
+
+#line 114 "../../incl/stdio.h"
+int ferror ( ) ; 
+
+#line 115 "../../incl/stdio.h"
+int fileno ( ) ; 
+
+#line 116 "../../incl/stdio.h"
+char * strerror ( ) ; 
+
+#line 118 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdin ( ) ; 
+
+#line 119 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdout ( ) ; 
+
+#line 120 "../../incl/stdio.h"
+extern struct _iobuf * _get_stderr ( ) ; 
+
+#line 132 "../../incl/stdio.h"
+int _main ( ) ; 
+
 #line 6 "../../src/token.h"
 extern int lex_clear ( ) ; 
 
@@ -1266,363 +1275,55 @@
 #line 781 "../../src/cfront.h"
 extern int stcount ; 
 
-#line 5 "../../src/alloc.c"
-extern int free ( ) ; 
-
-#line 6 "../../src/alloc.c"
-extern char * malloc ( ) ; 
+#line 143 "../../src/alloc.c"
+int * calloc ( ) ; 
 
-#line 7 "../../src/alloc.c"
-extern int print_free ( ) ; 
-typedef struct header HEADER ; 
-
-#line 11 "../../src/alloc.c"
-static HEADER * morecore ( ) ; 
-
-#line 13 "../../src/alloc.c"
-int maxalloc = 0 ; 
-
-#line 15 "../../src/alloc.c"
-struct header { /* sizeof = 8 */
-HEADER * _header_next ; 
-unsigned int _header_size ; 
-} ; 
+#line 144 "../../src/alloc.c"
+int * malloc ( _auto_nbytes ) unsigned int _auto_nbytes ; 
 
-#line 21 "../../src/alloc.c"
-static HEADER base ; 
-
-#line 22 "../../src/alloc.c"
-HEADER * allocp = 0 ; 
-
-#line 24 "../../src/alloc.c"
-extern int print_free ( ) 
-#line 25 "../../src/alloc.c"
-{ 
-#line 25 "../../src/alloc.c"
-register HEADER * _auto_p ; 
-register HEADER * _auto_q ; 
-register int _auto_amount ; 
-register int _auto_number ; 
-
-#line 26 "../../src/alloc.c"
-_auto_q = 0 ; 
-
-#line 27 "../../src/alloc.c"
-_auto_amount = 0 ; 
-
-#line 28 "../../src/alloc.c"
-_auto_number = 0 ; 
-
-#line 30 "../../src/alloc.c"
-for ( _auto_p = allocp ;( _auto_q != allocp ) ;( _auto_q = ( _auto_p = _auto_p -> _header_next ) ) ) 
-#line 30 "../../src/alloc.c"
-
-#line 30 "../../src/alloc.c"
-{ 
-#line 30 "../../src/alloc.c"
-_auto_number ++ ; 
-
-#line 32 "../../src/alloc.c"
-_auto_amount += _auto_p -> _header_size ; 
-} 
-#line 34 "../../src/alloc.c"
-fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , 
-#line 34 "../../src/alloc.c"
-( char * ) "print_free: %d %d\n", _auto_number , _auto_amount * 8) ; 
-} ; 
-
-#line 37 "../../src/alloc.c"
-extern char * malloc ( _auto_nbytes ) unsigned int _auto_nbytes ; 
-
-#line 38 "../../src/alloc.c"
-{ 
-#line 38 "../../src/alloc.c"
-char * _auto__result ; 
-register HEADER * _auto_p ; 
-register HEADER * _auto_q ; 
-register int _auto_nunits ; 
-
-#line 42 "../../src/alloc.c"
-Nalloc ++ ; 
-
-#line 43 "../../src/alloc.c"
-_auto_nunits = ( 1 + ( ( ( _auto_nbytes + 8) - 1 ) / 8) ) ; 
-#line 43 "../../src/alloc.c"
-
-#line 44 "../../src/alloc.c"
-if ( ( _auto_q = allocp ) == 0 ) { 
-#line 44 "../../src/alloc.c"
-base . _header_next = ( allocp = ( 
-#line 44 "../../src/alloc.c"
-_auto_q = ( & base ) ) ) ; 
-
-#line 46 "../../src/alloc.c"
-base . _header_size = 0 ; 
-} 
-#line 48 "../../src/alloc.c"
-for ( _auto_p = _auto_q -> _header_next ;;( ( _auto_q = _auto_p ) , ( _auto_p = _auto_p -> _header_next ) 
-#line 48 "../../src/alloc.c"
-) ) 
-#line 48 "../../src/alloc.c"
+#line 145 "../../src/alloc.c"
 { 
-#line 48 "../../src/alloc.c"
-if ( _auto_p -> _header_size >= _auto_nunits ) { 
-#line 49 "../../src/alloc.c"
-if ( _auto_p -> _header_size == _auto_nunits ) 
-#line 49 "../../src/alloc.c"
-
-#line 51 "../../src/alloc.c"
-_auto_q -> _header_next = _auto_p -> _header_next ; 
-else 
-#line 52 "../../src/alloc.c"
-{ 
-#line 52 "../../src/alloc.c"
-_auto_p -> _header_size -= _auto_nunits ; 
-
-#line 54 "../../src/alloc.c"
-_auto_p += ( ( ( int ) ( _auto_p -> _header_size ) ) ) ; 
+#line 145 "../../src/alloc.c"
+int * _auto__result ; 
 
-#line 55 "../../src/alloc.c"
-_auto_p -> _header_size = _auto_nunits ; 
-} 
-#line 57 "../../src/alloc.c"
-allocp = _auto_q ; 
-
-#line 60 "../../src/alloc.c"
-if ( maxalloc < _auto_nunits ) maxalloc = _auto_nunits ; 
-
-#line 62 "../../src/alloc.c"
+#line 146 "../../src/alloc.c"
 { 
-#line 62 "../../src/alloc.c"
-register int * _auto_x ; 
-register int * _auto_y ; 
-
-#line 62 "../../src/alloc.c"
-_auto_x = ( ( ( int * ) ( _auto_p + 1 ) ) ) ; 
-
-#line 63 "../../src/alloc.c"
-_auto_y = ( ( ( int * ) ( _auto_p + _auto_nunits ) ) ) ; 
+#line 146 "../../src/alloc.c"
+{ _auto__result = calloc ( ( unsigned int ) 1 , _auto_nbytes ) ; 
 
-#line 64 "../../src/alloc.c"
-while ( _auto_x < _auto_y ) ( * ( -- _auto_y ) ) = 0 ; 
-
-#line 65 "../../src/alloc.c"
-{ 
-#line 65 "../../src/alloc.c"
-{ _auto__result = ( ( ( char * ) ( _auto_x ) ) ) ; 
-#line 65 "../../src/alloc.c"
-
-#line 65 "../../src/alloc.c"
-return _auto__result ; 
-} } } } 
-#line 67 "../../src/alloc.c"
-if ( _auto_p == allocp ) if ( ( _auto_p = morecore ( ( 
-#line 67 "../../src/alloc.c"
-unsigned int ) _auto_nunits ) ) == 0 ) 
-#line 69 "../../src/alloc.c"
-{ 
-#line 69 "../../src/alloc.c"
-{ _auto__result = 0 ; 
-
-#line 69 "../../src/alloc.c"
+#line 146 "../../src/alloc.c"
 return _auto__result ; 
-} } } } ; 
-
-#line 75 "../../src/alloc.c"
-static HEADER * morecore ( _auto_nu ) unsigned int _auto_nu ; 
-
-#line 76 "../../src/alloc.c"
-{ 
-#line 76 "../../src/alloc.c"
-HEADER * _auto__result ; 
-
-#line 77 "../../src/alloc.c"
-extern char * sbrk ( ) ; 
-register HEADER * _auto_up ; 
-register int _auto_rnu2 ; 
-register int _auto_rnu ; 
-register char * _auto_cp ; 
-int _auto_ma ; 
-
-#line 81 "../../src/alloc.c"
-_auto_rnu = ( 1024 * ( ( ( _auto_nu + 1024 ) - 1 ) / 1024 ) ) ; 
-#line 81 "../../src/alloc.c"
-
-#line 82 "../../src/alloc.c"
-_auto_cp = sbrk ( _auto_rnu2 = ( _auto_rnu * 8) ) ; 
-
-#line 83 "../../src/alloc.c"
-Nfree_store += _auto_rnu2 ; 
-
-#line 84 "../../src/alloc.c"
-if ( ( ( ( int ) ( _auto_cp ) ) ) == -1) errorFI_PC__E ( 
-#line 84 "../../src/alloc.c"
-( int ) 'i' , ( char * ) "free store exhausted") ; 
-
-#line 85 "../../src/alloc.c"
-_auto_up = ( ( ( struct header * ) ( _auto_cp ) ) ) ; 
-
-#line 86 "../../src/alloc.c"
-_auto_up -> _header_size = _auto_rnu ; 
-
-#line 87 "../../src/alloc.c"
-_auto_ma = maxalloc ; 
-
-#line 88 "../../src/alloc.c"
-maxalloc = _auto_rnu ; 
-
-#line 89 "../../src/alloc.c"
-free ( ( ( char * ) ( _auto_up + 1 ) ) ) ; 
-
-#line 90 "../../src/alloc.c"
-maxalloc = _auto_ma ; 
+} } } ; 
 
-#line 91 "../../src/alloc.c"
+#line 149 "../../src/alloc.c"
+int print_free ( ) 
+#line 149 "../../src/alloc.c"
 { 
-#line 91 "../../src/alloc.c"
-{ _auto__result = allocp ; 
-
-#line 91 "../../src/alloc.c"
-return _auto__result ; 
-} } } ; 
+#line 149 "../../src/alloc.c"
+} ; 
 
-#line 94 "../../src/alloc.c"
+#line 151 "../../src/alloc.c"
 int NFn = 0 ; 
 
-#line 94 "../../src/alloc.c"
+#line 151 "../../src/alloc.c"
 int NFtn = 0 ; 
 
-#line 94 "../../src/alloc.c"
+#line 151 "../../src/alloc.c"
 int NFbt = 0 ; 
 
-#line 94 "../../src/alloc.c"
+#line 151 "../../src/alloc.c"
 int NFpv = 0 ; 
 
-#line 94 "../../src/alloc.c"
+#line 151 "../../src/alloc.c"
 int NFf = 0 ; 
 
-#line 94 "../../src/alloc.c"
+#line 151 "../../src/alloc.c"
 int NFe = 0 ; 
 
-#line 94 "../../src/alloc.c"
+#line 151 "../../src/alloc.c"
 int NFs = 0 ; 
 
-#line 94 "../../src/alloc.c"
+#line 151 "../../src/alloc.c"
 int NFc = 0 ; 
 
-#line 96 "../../src/alloc.c"
-extern int free ( _auto_ap ) char * _auto_ap ; 
-
-#line 97 "../../src/alloc.c"
-{ 
-#line 97 "../../src/alloc.c"
-register HEADER * _auto_p ; 
-register HEADER * _auto_q ; 
-
-#line 98 "../../src/alloc.c"
-if ( _auto_ap == 0 ) { 
-#line 98 "../../src/alloc.c"
-return ; 
-} 
-#line 100 "../../src/alloc.c"
-_auto_p = ( ( ( ( struct header * ) ( _auto_ap ) ) ) - 
-#line 100 "../../src/alloc.c"
-1 ) ; 
-
-#line 102 "../../src/alloc.c"
-if ( maxalloc < _auto_p -> _header_size ) errorFI_PC__E ( ( int ) 'i' , ( char * ) 
-#line 102 "../../src/alloc.c"
-"free store corrupted (%d)", _auto_ap ) ; 
-
-#line 104 "../../src/alloc.c"
-Nfree ++ ; 
-
-#line 106 "../../src/alloc.c"
-if ( Nspy ) { 
-#line 106 "../../src/alloc.c"
-Pname _auto_pp ; 
-TOK _auto_t ; 
-char * _auto_s ; 
-
-#line 107 "../../src/alloc.c"
-_auto_pp = ( ( ( struct name * ) ( _auto_ap ) ) ) ; 
-
-#line 108 "../../src/alloc.c"
-_auto_t = _auto_pp -> _node_base ; 
-
-#line 109 "../../src/alloc.c"
-_auto_s = 0 ; 
-
-#line 111 "../../src/alloc.c"
-switch ( _auto_t ) { 
-#line 111 "../../src/alloc.c"
-case 21 : case 5 : case 97 : case 38 : case 29 : 
-#line 111 "../../src/alloc.c"
-
-#line 113 "../../src/alloc.c"
-case 22 : case 15 : case 11 : case 119 : case 121 : case 114 : NFbt ++ ; 
-#line 113 "../../src/alloc.c"
-
-#line 115 "../../src/alloc.c"
-break ; 
-
-#line 117 "../../src/alloc.c"
-case 125 : case 110 : NFpv ++ ; 
-
-#line 118 "../../src/alloc.c"
-break ; 
-
-#line 120 "../../src/alloc.c"
-case 108 : NFf ++ ; 
-
-#line 120 "../../src/alloc.c"
-break ; 
-
-#line 122 "../../src/alloc.c"
-case 82 : case 84 : case 81 : case 83 : case 34 : NFc ++ ; 
-
-#line 123 "../../src/alloc.c"
-break ; 
-} } 
-#line 126 "../../src/alloc.c"
-for ( _auto_q = allocp ;( ! ( ( _auto_p > _auto_q ) && ( _auto_p < 
-#line 126 "../../src/alloc.c"
-_auto_q -> _header_next ) ) ) ;( _auto_q = _auto_q -> _header_next ) ) 
-#line 127 "../../src/alloc.c"
-if ( ( _auto_q >= _auto_q -> 
-#line 127 "../../src/alloc.c"
-_header_next ) && ( ( _auto_p > _auto_q ) || ( _auto_p < _auto_q -> _header_next ) ) ) 
-#line 128 "../../src/alloc.c"
-break 
-#line 128 "../../src/alloc.c"
-; 
-
-#line 130 "../../src/alloc.c"
-if ( ( _auto_p + _auto_p -> _header_size ) == _auto_q -> _header_next ) { 
-#line 130 "../../src/alloc.c"
-_auto_p -> _header_size += _auto_q -> _header_next -> 
-#line 130 "../../src/alloc.c"
-_header_size ; 
-
-#line 132 "../../src/alloc.c"
-_auto_p -> _header_next = _auto_q -> _header_next -> _header_next ; 
-} else 
-#line 134 "../../src/alloc.c"
-_auto_p -> _header_next = _auto_q -> _header_next ; 
-
-#line 135 "../../src/alloc.c"
-if ( ( _auto_q + _auto_q -> _header_size ) == _auto_p ) { 
-#line 135 "../../src/alloc.c"
-_auto_q -> _header_size += _auto_p -> _header_size ; 
-
-#line 137 "../../src/alloc.c"
-_auto_q -> _header_next = _auto_p -> _header_next ; 
-} else 
-#line 139 "../../src/alloc.c"
-_auto_q -> _header_next = _auto_p ; 
-
-#line 140 "../../src/alloc.c"
-allocp = _auto_q ; 
-} ; 
-
 /* the end */
diff -uwrN cfront-1a/scratch/src/dcl2..c cfront-1b/scratch/src/dcl2..c
--- cfront-1a/scratch/src/dcl2..c	1986-02-07 16:33:29.000000000 +0100
+++ cfront-1b/scratch/src/dcl2..c	2007-09-22 15:17:21.000000000 +0200
@@ -10,18 +10,6 @@
 #line 1 "../../src/dcl2.c"
 typedef char * va_list ; 
 
-#line 12 "../../incl/stdio.h"
-struct _iobuf { /* sizeof = 16 */
-int __iobuf__cnt ; 
-char * __iobuf__ptr ; 
-char * __iobuf__base ; 
-char __iobuf__flag ; 
-char __iobuf__file ; 
-} ; 
-
-#line 20 "../../incl/stdio.h"
-extern struct _iobuf _iob [ 20] ; 
-
 #line 36 "../../incl/stdio.h"
 extern int _flsbuf ( ) ; 
 
@@ -160,9 +148,6 @@
 #line 106 "../../incl/stdio.h"
 extern int perror ( ) ; 
 
-#line 108 "../../incl/stdio.h"
-extern int errno ; 
-
 #line 109 "../../incl/stdio.h"
 extern char * sys_errlist [ ] ; 
 
@@ -172,6 +157,30 @@
 #line 111 "../../incl/stdio.h"
 extern unsigned char * _bufendtab [ ] ; 
 
+#line 113 "../../incl/stdio.h"
+int feof ( ) ; 
+
+#line 114 "../../incl/stdio.h"
+int ferror ( ) ; 
+
+#line 115 "../../incl/stdio.h"
+int fileno ( ) ; 
+
+#line 116 "../../incl/stdio.h"
+char * strerror ( ) ; 
+
+#line 118 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdin ( ) ; 
+
+#line 119 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdout ( ) ; 
+
+#line 120 "../../incl/stdio.h"
+extern struct _iobuf * _get_stderr ( ) ; 
+
+#line 132 "../../incl/stdio.h"
+int _main ( ) ; 
+
 #line 6 "../../src/token.h"
 extern int lex_clear ( ) ; 
 
@@ -1546,7 +1555,7 @@
 _auto_l1 = strlen ( _auto_s ) ; 
 
 #line 103 "../../src/dcl2.c"
-_auto_l2 = ( ( _auto_bb - _auto_buf ) - 1 ) ; 
+_auto_l2 = ( _auto_bb - _auto_buf ) ; 
 
 #line 104 "../../src/dcl2.c"
 _auto_p = ( ( ( char * ) ( _new ( ( long ) ( ( 
diff -uwrN cfront-1a/scratch/src/dcl..c cfront-1b/scratch/src/dcl..c
--- cfront-1a/scratch/src/dcl..c	1986-02-07 16:33:17.000000000 +0100
+++ cfront-1b/scratch/src/dcl..c	2007-09-22 15:17:21.000000000 +0200
@@ -10,18 +10,6 @@
 #line 1 "../../src/dcl.c"
 typedef char * va_list ; 
 
-#line 12 "../../incl/stdio.h"
-struct _iobuf { /* sizeof = 16 */
-int __iobuf__cnt ; 
-char * __iobuf__ptr ; 
-char * __iobuf__base ; 
-char __iobuf__flag ; 
-char __iobuf__file ; 
-} ; 
-
-#line 20 "../../incl/stdio.h"
-extern struct _iobuf _iob [ 20] ; 
-
 #line 36 "../../incl/stdio.h"
 extern int _flsbuf ( ) ; 
 
@@ -160,9 +148,6 @@
 #line 106 "../../incl/stdio.h"
 extern int perror ( ) ; 
 
-#line 108 "../../incl/stdio.h"
-extern int errno ; 
-
 #line 109 "../../incl/stdio.h"
 extern char * sys_errlist [ ] ; 
 
@@ -172,6 +157,30 @@
 #line 111 "../../incl/stdio.h"
 extern unsigned char * _bufendtab [ ] ; 
 
+#line 113 "../../incl/stdio.h"
+int feof ( ) ; 
+
+#line 114 "../../incl/stdio.h"
+int ferror ( ) ; 
+
+#line 115 "../../incl/stdio.h"
+int fileno ( ) ; 
+
+#line 116 "../../incl/stdio.h"
+char * strerror ( ) ; 
+
+#line 118 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdin ( ) ; 
+
+#line 119 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdout ( ) ; 
+
+#line 120 "../../incl/stdio.h"
+extern struct _iobuf * _get_stderr ( ) ; 
+
+#line 132 "../../incl/stdio.h"
+int _main ( ) ; 
+
 #line 6 "../../src/token.h"
 extern int lex_clear ( ) ; 
 
diff -uwrN cfront-1a/scratch/src/del..c cfront-1b/scratch/src/del..c
--- cfront-1a/scratch/src/del..c	1986-02-07 16:33:33.000000000 +0100
+++ cfront-1b/scratch/src/del..c	2007-09-22 15:17:21.000000000 +0200
@@ -10,18 +10,6 @@
 #line 1 "../../src/del.c"
 typedef char * va_list ; 
 
-#line 12 "../../incl/stdio.h"
-struct _iobuf { /* sizeof = 16 */
-int __iobuf__cnt ; 
-char * __iobuf__ptr ; 
-char * __iobuf__base ; 
-char __iobuf__flag ; 
-char __iobuf__file ; 
-} ; 
-
-#line 20 "../../incl/stdio.h"
-extern struct _iobuf _iob [ 20] ; 
-
 #line 36 "../../incl/stdio.h"
 extern int _flsbuf ( ) ; 
 
@@ -160,9 +148,6 @@
 #line 106 "../../incl/stdio.h"
 extern int perror ( ) ; 
 
-#line 108 "../../incl/stdio.h"
-extern int errno ; 
-
 #line 109 "../../incl/stdio.h"
 extern char * sys_errlist [ ] ; 
 
@@ -172,6 +157,30 @@
 #line 111 "../../incl/stdio.h"
 extern unsigned char * _bufendtab [ ] ; 
 
+#line 113 "../../incl/stdio.h"
+int feof ( ) ; 
+
+#line 114 "../../incl/stdio.h"
+int ferror ( ) ; 
+
+#line 115 "../../incl/stdio.h"
+int fileno ( ) ; 
+
+#line 116 "../../incl/stdio.h"
+char * strerror ( ) ; 
+
+#line 118 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdin ( ) ; 
+
+#line 119 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdout ( ) ; 
+
+#line 120 "../../incl/stdio.h"
+extern struct _iobuf * _get_stderr ( ) ; 
+
+#line 132 "../../incl/stdio.h"
+int _main ( ) ; 
+
 #line 6 "../../src/token.h"
 extern int lex_clear ( ) ; 
 
diff -uwrN cfront-1a/scratch/src/error..c cfront-1b/scratch/src/error..c
--- cfront-1a/scratch/src/error..c	1986-02-07 16:33:37.000000000 +0100
+++ cfront-1b/scratch/src/error..c	2007-09-22 15:17:21.000000000 +0200
@@ -94,18 +94,6 @@
 extern int F_OPTIMIZED ; 
 typedef char * va_list ; 
 
-#line 12 "../../incl/stdio.h"
-struct _iobuf { /* sizeof = 16 */
-int __iobuf__cnt ; 
-char * __iobuf__ptr ; 
-char * __iobuf__base ; 
-char __iobuf__flag ; 
-char __iobuf__file ; 
-} ; 
-
-#line 20 "../../incl/stdio.h"
-extern struct _iobuf _iob [ 20] ; 
-
 #line 36 "../../incl/stdio.h"
 extern int _flsbuf ( ) ; 
 
@@ -244,9 +232,6 @@
 #line 106 "../../incl/stdio.h"
 extern int perror ( ) ; 
 
-#line 108 "../../incl/stdio.h"
-extern int errno ; 
-
 #line 109 "../../incl/stdio.h"
 extern char * sys_errlist [ ] ; 
 
@@ -256,6 +241,30 @@
 #line 111 "../../incl/stdio.h"
 extern unsigned char * _bufendtab [ ] ; 
 
+#line 113 "../../incl/stdio.h"
+int feof ( ) ; 
+
+#line 114 "../../incl/stdio.h"
+int ferror ( ) ; 
+
+#line 115 "../../incl/stdio.h"
+int fileno ( ) ; 
+
+#line 116 "../../incl/stdio.h"
+char * strerror ( ) ; 
+
+#line 118 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdin ( ) ; 
+
+#line 119 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdout ( ) ; 
+
+#line 120 "../../incl/stdio.h"
+extern struct _iobuf * _get_stderr ( ) ; 
+
+#line 132 "../../incl/stdio.h"
+int _main ( ) ; 
+
 #line 6 "../../src/token.h"
 extern int lex_clear ( ) ; 
 
@@ -1375,9 +1384,8 @@
 static char _static_errbuf [ 1024] ; 
 
 #line 35 "../../src/error.c"
-setbuf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , ( 
+setbuf ( ( struct _iobuf * ) _get_stderr ( ) , ( char * ) _static_errbuf ) ; 
 #line 35 "../../src/error.c"
-char * ) _static_errbuf ) ; 
 
 #line 37 "../../src/error.c"
 ( abbrev_tbl [ 'A' ] ) = " argument"; 
@@ -1515,11 +1523,9 @@
 #line 95 "../../src/error.c"
 { 
 #line 95 "../../src/error.c"
-( ( -- out_file -> __iobuf__cnt ) >= 0 ) ? 
-#line 95 "../../src/error.c"
-( ( ( int ) ( ( * ( out_file -> __iobuf__ptr ++ ) ) = 
+fputc ( ( int ) '\n' , ( struct _iobuf * ) 
 #line 95 "../../src/error.c"
-10) ) ) : _flsbuf ( 10, ( struct _iobuf * ) out_file ) ; 
+out_file ) ; 
 } ; 
 
 #line 99 "../../src/error.c"
@@ -1665,11 +1671,9 @@
 #line 150 "../../src/error.c"
 fprintf ( 
 #line 150 "../../src/error.c"
-( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , ( char 
+( struct _iobuf * ) _get_stderr ( ) , ( char * ) "\n%s: this c can't handle varargs (%d,%d,%d -- %d %d)\n", prog_name , _auto_si , 
 #line 150 "../../src/error.c"
-* ) "\n%s: this c can't handle varargs (%d,%d,%d -- %d %d)\n", prog_name , _auto_si , _auto_scp , _auto_ssp , & ( _auto_a [ 1 ] ) , & 
-#line 150 "../../src/error.c"
-_auto_s ) ; 
+_auto_scp , _auto_ssp , & ( _auto_a [ 1 ] ) , & _auto_s ) ; 
 
 #line 154 "../../src/error.c"
 ext ( 12 ) ; 
@@ -1693,9 +1697,9 @@
 #line 160 "../../src/error.c"
 { 
 #line 160 "../../src/error.c"
-fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) 
+fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( char * 
 #line 160 "../../src/error.c"
-) , ( char * ) "\nUPS!, error while handling error\n") ; 
+) "\nUPS!, error while handling error\n") ; 
 
 #line 162 "../../src/error.c"
 ext ( 13 ) ; 
@@ -1704,21 +1708,17 @@
 if ( _auto_t == 't' ) _auto_t = 'i' ; 
 
 #line 167 "../../src/error.c"
-out_file = ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) ; 
+out_file = _get_stderr ( ) ; 
 
 #line 168 "../../src/error.c"
-if ( ! scan_started ) ( ( -- out_file -> __iobuf__cnt ) >= 0 ) ? ( 
-#line 168 "../../src/error.c"
-( ( int ) ( ( * ( out_file -> __iobuf__ptr ++ ) ) = 10) 
+if ( ! scan_started ) fputc ( ( int ) '\n' , ( struct _iobuf * ) out_file ) 
 #line 168 "../../src/error.c"
-) ) : _flsbuf ( 10, ( struct _iobuf * ) out_file ) ; 
+; 
 else 
 #line 171 "../../src/error.c"
-if ( _auto_t == 't' ) ( ( -- out_file -> __iobuf__cnt ) >= 0 ) ? 
-#line 171 "../../src/error.c"
-( ( ( int ) ( ( * ( out_file -> __iobuf__ptr ++ ) ) = 
+if ( _auto_t == 't' ) fputc ( ( int ) '\n' , ( struct _iobuf * ) 
 #line 171 "../../src/error.c"
-10) ) ) : _flsbuf ( 10, ( struct _iobuf * ) out_file ) ; 
+out_file ) ; 
 else 
 #line 173 "../../src/error.c"
 if ( _auto_lc != ( & dummy_loc ) ) _loc_put ( ( struct loc * ) _auto_lc , 
@@ -1920,13 +1920,7 @@
 break ; 
 } else 
 #line 250 "../../src/error.c"
-( ( -- out_file -> __iobuf__cnt ) >= 0 ) ? ( ( ( 
-#line 250 "../../src/error.c"
-int ) ( ( * ( out_file -> __iobuf__ptr ++ ) ) = ( ( ( 
-#line 250 "../../src/error.c"
-unsigned int ) ( _auto_c ) ) ) ) ) ) : _flsbuf ( ( ( 
-#line 250 "../../src/error.c"
-unsigned int ) ( _auto_c ) ) , ( struct _iobuf * ) out_file ) ; 
+fputc ( _auto_c , ( struct _iobuf * ) out_file ) ; 
 } 
 #line 253 "../../src/error.c"
 if ( ! scan_started ) ext ( 4 ) ; 
@@ -1934,13 +1928,9 @@
 #line 255 "../../src/error.c"
 switch ( _auto_t ) { 
 #line 255 "../../src/error.c"
-case 'd' : case 't' : case 'w' : ( ( -- out_file -> 
-#line 255 "../../src/error.c"
-__iobuf__cnt ) >= 0 ) ? ( ( ( int ) ( ( * ( 
+case 'd' : case 't' : case 'w' : fputc ( ( int ) 
 #line 255 "../../src/error.c"
-out_file -> __iobuf__ptr ++ ) ) = 10) ) ) : _flsbuf ( 10, ( struct _iobuf * 
-#line 255 "../../src/error.c"
-) out_file ) ; 
+'\n' , ( struct _iobuf * ) out_file ) ; 
 
 #line 260 "../../src/error.c"
 break ; 
@@ -1949,9 +1939,7 @@
 default : print_context ( ) ; 
 } 
 #line 264 "../../src/error.c"
-fflush ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) ) 
-#line 264 "../../src/error.c"
-; 
+fflush ( ( struct _iobuf * ) _get_stderr ( ) ) ; 
 
 #line 267 "../../src/error.c"
 out_file = _auto_of ; 
@@ -1976,9 +1964,7 @@
 #line 276 "../../src/error.c"
 fprintf ( 
 #line 276 "../../src/error.c"
-( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , ( char 
-#line 276 "../../src/error.c"
-* ) "Sorry, too many errors\n") ; 
+( struct _iobuf * ) _get_stderr ( ) , ( char * ) "Sorry, too many errors\n") ; 
 
 #line 278 "../../src/error.c"
 ext ( 7 ) ; 
diff -uwrN cfront-1a/scratch/src/expand..c cfront-1b/scratch/src/expand..c
--- cfront-1a/scratch/src/expand..c	1986-02-07 16:33:43.000000000 +0100
+++ cfront-1b/scratch/src/expand..c	2007-09-22 15:17:21.000000000 +0200
@@ -10,18 +10,6 @@
 #line 1 "../../src/expand.c"
 typedef char * va_list ; 
 
-#line 12 "../../incl/stdio.h"
-struct _iobuf { /* sizeof = 16 */
-int __iobuf__cnt ; 
-char * __iobuf__ptr ; 
-char * __iobuf__base ; 
-char __iobuf__flag ; 
-char __iobuf__file ; 
-} ; 
-
-#line 20 "../../incl/stdio.h"
-extern struct _iobuf _iob [ 20] ; 
-
 #line 36 "../../incl/stdio.h"
 extern int _flsbuf ( ) ; 
 
@@ -160,9 +148,6 @@
 #line 106 "../../incl/stdio.h"
 extern int perror ( ) ; 
 
-#line 108 "../../incl/stdio.h"
-extern int errno ; 
-
 #line 109 "../../incl/stdio.h"
 extern char * sys_errlist [ ] ; 
 
@@ -172,6 +157,30 @@
 #line 111 "../../incl/stdio.h"
 extern unsigned char * _bufendtab [ ] ; 
 
+#line 113 "../../incl/stdio.h"
+int feof ( ) ; 
+
+#line 114 "../../incl/stdio.h"
+int ferror ( ) ; 
+
+#line 115 "../../incl/stdio.h"
+int fileno ( ) ; 
+
+#line 116 "../../incl/stdio.h"
+char * strerror ( ) ; 
+
+#line 118 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdin ( ) ; 
+
+#line 119 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdout ( ) ; 
+
+#line 120 "../../incl/stdio.h"
+extern struct _iobuf * _get_stderr ( ) ; 
+
+#line 132 "../../incl/stdio.h"
+int _main ( ) ; 
+
 #line 6 "../../src/token.h"
 extern int lex_clear ( ) ; 
 
diff -uwrN cfront-1a/scratch/src/expr2..c cfront-1b/scratch/src/expr2..c
--- cfront-1a/scratch/src/expr2..c	1986-02-07 16:34:10.000000000 +0100
+++ cfront-1b/scratch/src/expr2..c	2007-09-22 15:17:21.000000000 +0200
@@ -10,18 +10,6 @@
 #line 1 "../../src/expr2.c"
 typedef char * va_list ; 
 
-#line 12 "../../incl/stdio.h"
-struct _iobuf { /* sizeof = 16 */
-int __iobuf__cnt ; 
-char * __iobuf__ptr ; 
-char * __iobuf__base ; 
-char __iobuf__flag ; 
-char __iobuf__file ; 
-} ; 
-
-#line 20 "../../incl/stdio.h"
-extern struct _iobuf _iob [ 20] ; 
-
 #line 36 "../../incl/stdio.h"
 extern int _flsbuf ( ) ; 
 
@@ -160,9 +148,6 @@
 #line 106 "../../incl/stdio.h"
 extern int perror ( ) ; 
 
-#line 108 "../../incl/stdio.h"
-extern int errno ; 
-
 #line 109 "../../incl/stdio.h"
 extern char * sys_errlist [ ] ; 
 
@@ -172,6 +157,30 @@
 #line 111 "../../incl/stdio.h"
 extern unsigned char * _bufendtab [ ] ; 
 
+#line 113 "../../incl/stdio.h"
+int feof ( ) ; 
+
+#line 114 "../../incl/stdio.h"
+int ferror ( ) ; 
+
+#line 115 "../../incl/stdio.h"
+int fileno ( ) ; 
+
+#line 116 "../../incl/stdio.h"
+char * strerror ( ) ; 
+
+#line 118 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdin ( ) ; 
+
+#line 119 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdout ( ) ; 
+
+#line 120 "../../incl/stdio.h"
+extern struct _iobuf * _get_stderr ( ) ; 
+
+#line 132 "../../incl/stdio.h"
+int _main ( ) ; 
+
 #line 6 "../../src/token.h"
 extern int lex_clear ( ) ; 
 
diff -uwrN cfront-1a/scratch/src/expr..c cfront-1b/scratch/src/expr..c
--- cfront-1a/scratch/src/expr..c	1986-02-07 16:33:58.000000000 +0100
+++ cfront-1b/scratch/src/expr..c	2007-09-22 15:17:21.000000000 +0200
@@ -10,18 +10,6 @@
 #line 1 "../../src/expr.c"
 typedef char * va_list ; 
 
-#line 12 "../../incl/stdio.h"
-struct _iobuf { /* sizeof = 16 */
-int __iobuf__cnt ; 
-char * __iobuf__ptr ; 
-char * __iobuf__base ; 
-char __iobuf__flag ; 
-char __iobuf__file ; 
-} ; 
-
-#line 20 "../../incl/stdio.h"
-extern struct _iobuf _iob [ 20] ; 
-
 #line 36 "../../incl/stdio.h"
 extern int _flsbuf ( ) ; 
 
@@ -160,9 +148,6 @@
 #line 106 "../../incl/stdio.h"
 extern int perror ( ) ; 
 
-#line 108 "../../incl/stdio.h"
-extern int errno ; 
-
 #line 109 "../../incl/stdio.h"
 extern char * sys_errlist [ ] ; 
 
@@ -172,6 +157,30 @@
 #line 111 "../../incl/stdio.h"
 extern unsigned char * _bufendtab [ ] ; 
 
+#line 113 "../../incl/stdio.h"
+int feof ( ) ; 
+
+#line 114 "../../incl/stdio.h"
+int ferror ( ) ; 
+
+#line 115 "../../incl/stdio.h"
+int fileno ( ) ; 
+
+#line 116 "../../incl/stdio.h"
+char * strerror ( ) ; 
+
+#line 118 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdin ( ) ; 
+
+#line 119 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdout ( ) ; 
+
+#line 120 "../../incl/stdio.h"
+extern struct _iobuf * _get_stderr ( ) ; 
+
+#line 132 "../../incl/stdio.h"
+int _main ( ) ; 
+
 #line 6 "../../src/token.h"
 extern int lex_clear ( ) ; 
 
diff -uwrN cfront-1a/scratch/src/lalex..c cfront-1b/scratch/src/lalex..c
--- cfront-1a/scratch/src/lalex..c	1986-02-07 16:34:17.000000000 +0100
+++ cfront-1b/scratch/src/lalex..c	2007-09-22 15:17:21.000000000 +0200
@@ -10,18 +10,6 @@
 #line 1 "../../src/lalex.c"
 typedef char * va_list ; 
 
-#line 12 "../../incl/stdio.h"
-struct _iobuf { /* sizeof = 16 */
-int __iobuf__cnt ; 
-char * __iobuf__ptr ; 
-char * __iobuf__base ; 
-char __iobuf__flag ; 
-char __iobuf__file ; 
-} ; 
-
-#line 20 "../../incl/stdio.h"
-extern struct _iobuf _iob [ 20] ; 
-
 #line 36 "../../incl/stdio.h"
 extern int _flsbuf ( ) ; 
 
@@ -160,9 +148,6 @@
 #line 106 "../../incl/stdio.h"
 extern int perror ( ) ; 
 
-#line 108 "../../incl/stdio.h"
-extern int errno ; 
-
 #line 109 "../../incl/stdio.h"
 extern char * sys_errlist [ ] ; 
 
@@ -172,6 +157,30 @@
 #line 111 "../../incl/stdio.h"
 extern unsigned char * _bufendtab [ ] ; 
 
+#line 113 "../../incl/stdio.h"
+int feof ( ) ; 
+
+#line 114 "../../incl/stdio.h"
+int ferror ( ) ; 
+
+#line 115 "../../incl/stdio.h"
+int fileno ( ) ; 
+
+#line 116 "../../incl/stdio.h"
+char * strerror ( ) ; 
+
+#line 118 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdin ( ) ; 
+
+#line 119 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdout ( ) ; 
+
+#line 120 "../../incl/stdio.h"
+extern struct _iobuf * _get_stderr ( ) ; 
+
+#line 132 "../../incl/stdio.h"
+int _main ( ) ; 
+
 #line 6 "../../src/token.h"
 extern int lex_clear ( ) ; 
 
diff -uwrN cfront-1a/scratch/src/lex..c cfront-1b/scratch/src/lex..c
--- cfront-1a/scratch/src/lex..c	1986-02-07 16:34:28.000000000 +0100
+++ cfront-1b/scratch/src/lex..c	2007-09-22 15:17:21.000000000 +0200
@@ -10,18 +10,6 @@
 #line 1 "../../src/lex.c"
 typedef char * va_list ; 
 
-#line 12 "../../incl/stdio.h"
-struct _iobuf { /* sizeof = 16 */
-int __iobuf__cnt ; 
-char * __iobuf__ptr ; 
-char * __iobuf__base ; 
-char __iobuf__flag ; 
-char __iobuf__file ; 
-} ; 
-
-#line 20 "../../incl/stdio.h"
-extern struct _iobuf _iob [ 20] ; 
-
 #line 36 "../../incl/stdio.h"
 extern int _flsbuf ( ) ; 
 
@@ -160,9 +148,6 @@
 #line 106 "../../incl/stdio.h"
 extern int perror ( ) ; 
 
-#line 108 "../../incl/stdio.h"
-extern int errno ; 
-
 #line 109 "../../incl/stdio.h"
 extern char * sys_errlist [ ] ; 
 
@@ -172,6 +157,30 @@
 #line 111 "../../incl/stdio.h"
 extern unsigned char * _bufendtab [ ] ; 
 
+#line 113 "../../incl/stdio.h"
+int feof ( ) ; 
+
+#line 114 "../../incl/stdio.h"
+int ferror ( ) ; 
+
+#line 115 "../../incl/stdio.h"
+int fileno ( ) ; 
+
+#line 116 "../../incl/stdio.h"
+char * strerror ( ) ; 
+
+#line 118 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdin ( ) ; 
+
+#line 119 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdout ( ) ; 
+
+#line 120 "../../incl/stdio.h"
+extern struct _iobuf * _get_stderr ( ) ; 
+
+#line 132 "../../incl/stdio.h"
+int _main ( ) ; 
+
 #line 6 "../../src/token.h"
 extern int lex_clear ( ) ; 
 
@@ -1439,14 +1448,10 @@
 struct loc curloc ; 
 
 #line 93 "../../src/lex.c"
-struct _iobuf * out_file = ( struct _iobuf * ) ( & ( _iob [ 1 ] ) ) 
-#line 93 "../../src/lex.c"
-; 
+struct _iobuf * out_file = 0 ; 
 
 #line 94 "../../src/lex.c"
-struct _iobuf * in_file = ( struct _iobuf * ) ( & ( _iob [ 0 ] ) 
-#line 94 "../../src/lex.c"
-) ; 
+struct _iobuf * in_file = 0 ; 
 
 #line 95 "../../src/lex.c"
 Ptable ktbl ; 
@@ -1688,7 +1693,7 @@
 if ( _auto_f == 0 ) _auto_f = ( src_file_name ? src_file_name : "") ; 
 
 #line 206 "../../src/lex.c"
-fprintf ( ( struct _iobuf * ) _auto_p , ( char * ) "\"%s\", line %d: ", _auto_f , _auto_this -> _loc_line ) 
+fprintf ( ( struct _iobuf * ) _auto_p , ( char * ) "%s:%d: ", _auto_f , _auto_this -> _loc_line ) 
 #line 206 "../../src/lex.c"
 ; 
 } } ; 
@@ -1722,19 +1727,15 @@
 = _auto_c ) ) ) ; 
 
 #line 228 "../../src/lex.c"
-while ( ( ( _auto_c = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 ) 
-#line 228 "../../src/lex.c"
-? ( ( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( ( 
-#line 228 "../../src/lex.c"
-struct _iobuf * ) in_file ) ) ) , ( ( lxmask [ _auto_c + 1 ] ) & 
+while ( ( ( _auto_c = fgetc ( ( struct _iobuf * ) in_file ) ) , ( 
 #line 228 "../../src/lex.c"
-_auto_m ) ) ) 
+( lxmask [ _auto_c + 1 ] ) & _auto_m ) ) ) 
 #line 228 "../../src/lex.c"
-( txtmax <= txtfree ) ? errorFI_PC__E ( ( int ) 'i' , ( char 
+( txtmax <= txtfree ) ? errorFI_PC__E ( 
 #line 228 "../../src/lex.c"
-* ) "input buffer overflow") : ( ( ( int ) ( ( * ( txtfree ++ 
+( int ) 'i' , ( char * ) "input buffer overflow") : ( ( ( int 
 #line 228 "../../src/lex.c"
-) ) = _auto_c ) ) ) ; 
+) ( ( * ( txtfree ++ ) ) = _auto_c ) ) ) ; 
 
 #line 229 "../../src/lex.c"
 ungetc ( _auto_c , ( struct _iobuf * ) in_file ) ; 
@@ -1938,11 +1939,7 @@
 _auto_i = 0 ; 
 
 #line 355 "../../src/lex.c"
-_auto_c = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 ) ? ( ( * 
-#line 355 "../../src/lex.c"
-( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( ( struct _iobuf * ) in_file ) 
-#line 355 "../../src/lex.c"
-) ; 
+_auto_c = fgetc ( ( struct _iobuf * ) in_file ) ; 
 
 #line 356 "../../src/lex.c"
 if ( ( lxmask [ _auto_c + 1 ] ) & 010 ) { 
@@ -1951,11 +1948,7 @@
 #line 356 "../../src/lex.c"
 
 #line 358 "../../src/lex.c"
-_auto_c = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 ) ? ( ( * 
-#line 358 "../../src/lex.c"
-( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( ( struct _iobuf * ) in_file ) 
-#line 358 "../../src/lex.c"
-) ; 
+_auto_c = fgetc ( ( struct _iobuf * ) in_file ) ; 
 
 #line 359 "../../src/lex.c"
 if ( ( lxmask [ _auto_c + 1 ] ) & 010 ) { 
@@ -1965,11 +1958,7 @@
 4 ) + int_val ( _auto_c ) ) ; 
 
 #line 361 "../../src/lex.c"
-_auto_c = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 ) ? ( ( * 
-#line 361 "../../src/lex.c"
-( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( ( struct _iobuf * ) in_file ) 
-#line 361 "../../src/lex.c"
-) ; 
+_auto_c = fgetc ( ( struct _iobuf * ) in_file ) ; 
 
 #line 362 "../../src/lex.c"
 if ( ( lxmask [ _auto_c + 1 ] ) & 010 ) { 
@@ -2051,15 +2040,13 @@
 goto ex ; 
 } 
 #line 400 "../../src/lex.c"
-switch ( _auto_c = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 ) ? 
+switch ( _auto_c = fgetc ( ( struct _iobuf * ) in_file ) ) { 
 #line 400 "../../src/lex.c"
-( ( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( ( struct 
+case '\'' : 
 #line 400 "../../src/lex.c"
-_iobuf * ) in_file ) ) ) 
-#line 400 "../../src/lex.c"
-{ 
-#line 400 "../../src/lex.c"
-case '\'' : goto ex ; 
+
+#line 402 "../../src/lex.c"
+goto ex ; 
 
 #line 403 "../../src/lex.c"
 case -1: errorFPC__E ( ( char * ) "eof in char constant") ; 
@@ -2081,15 +2068,11 @@
 ) = _auto_c ) ) ) ; 
 
 #line 411 "../../src/lex.c"
-switch ( _auto_c = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 ) ? ( 
+switch ( _auto_c = fgetc ( ( struct _iobuf * ) in_file ) ) { 
 #line 411 "../../src/lex.c"
-( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( ( struct _iobuf * 
+case '\n' : ++ 
 #line 411 "../../src/lex.c"
-) in_file ) ) ) 
-#line 411 "../../src/lex.c"
-{ 
-#line 411 "../../src/lex.c"
-case '\n' : ++ curloc . _loc_line ; 
+curloc . _loc_line ; 
 
 #line 414 "../../src/lex.c"
 default : ( txtmax <= txtfree ) ? errorFI_PC__E ( ( int ) 'i' , ( char * 
@@ -2113,11 +2096,7 @@
 ) = _auto_c ) ) ) ; 
 
 #line 420 "../../src/lex.c"
-_auto_c = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 ) ? ( ( * 
-#line 420 "../../src/lex.c"
-( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( ( struct _iobuf * ) in_file ) 
-#line 420 "../../src/lex.c"
-) ; 
+_auto_c = fgetc ( ( struct _iobuf * ) in_file ) ; 
 
 #line 421 "../../src/lex.c"
 if ( ( ( lxmask [ _auto_c + 1 ] ) & 02 ) && ( _auto_c < '8' ) 
@@ -2133,11 +2112,7 @@
 ) = _auto_c ) ) ) ; 
 
 #line 423 "../../src/lex.c"
-_auto_c = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 ) ? ( ( * 
-#line 423 "../../src/lex.c"
-( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( ( struct _iobuf * ) in_file ) 
-#line 423 "../../src/lex.c"
-) ; 
+_auto_c = fgetc ( ( struct _iobuf * ) in_file ) ; 
 
 #line 424 "../../src/lex.c"
 if ( ( ( lxmask [ _auto_c + 1 ] ) & 02 ) && ( _auto_c < '8' ) 
@@ -2209,17 +2184,13 @@
 register int _auto_c ; 
 
 #line 452 "../../src/lex.c"
-for ( ;;) switch ( _auto_c = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 
+for ( ;;) switch ( _auto_c = fgetc ( ( struct _iobuf * ) in_file ) ) { 
 #line 452 "../../src/lex.c"
-) ? ( ( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( 
-#line 452 "../../src/lex.c"
-( struct _iobuf * ) in_file ) ) ) 
-#line 453 "../../src/lex.c"
-{ 
-#line 453 "../../src/lex.c"
-case -1: errorFPC__E ( ( char * 
+
 #line 453 "../../src/lex.c"
-) "eof in comment") ; 
+
+#line 454 "../../src/lex.c"
+case -1: errorFPC__E ( ( char * ) "eof in comment") ; 
 
 #line 456 "../../src/lex.c"
 { 
@@ -2236,11 +2207,9 @@
 break ; 
 
 #line 461 "../../src/lex.c"
-case '*' : if ( ( _auto_c = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 
-#line 461 "../../src/lex.c"
-) ? ( ( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( 
+case '*' : if ( ( _auto_c = fgetc ( ( struct _iobuf * ) in_file ) ) == 
 #line 461 "../../src/lex.c"
-( struct _iobuf * ) in_file ) ) ) == '/' ) 
+'/' ) 
 #line 462 "../../src/lex.c"
 { 
 #line 462 "../../src/lex.c"
@@ -2253,15 +2222,11 @@
 break ; 
 
 #line 465 "../../src/lex.c"
-case '/' : if ( ( _auto_c = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 
-#line 465 "../../src/lex.c"
-) ? ( ( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( 
+case '/' : if ( ( _auto_c = fgetc ( ( struct _iobuf * ) in_file ) ) == 
 #line 465 "../../src/lex.c"
-( struct _iobuf * ) in_file ) ) ) == '*' ) 
+'*' ) 
 #line 466 "../../src/lex.c"
-errorFI_PC__E ( ( int ) 'w' , 
-#line 466 "../../src/lex.c"
-( char * ) "``/*'' in comment") ; 
+errorFI_PC__E ( ( int ) 'w' , ( char * ) "``/*'' in comment") ; 
 
 #line 467 "../../src/lex.c"
 ungetc ( _auto_c , ( struct _iobuf * ) in_file ) ; 
@@ -2278,17 +2243,13 @@
 register int _auto_c ; 
 
 #line 478 "../../src/lex.c"
-for ( ;;) switch ( _auto_c = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 
-#line 478 "../../src/lex.c"
-) ? ( ( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( 
+for ( ;;) switch ( _auto_c = fgetc ( ( struct _iobuf * ) in_file ) ) { 
 #line 478 "../../src/lex.c"
-( struct _iobuf * ) in_file ) ) ) 
-#line 479 "../../src/lex.c"
-{ 
-#line 479 "../../src/lex.c"
-case -1: errorFPC__E ( ( char * 
+
 #line 479 "../../src/lex.c"
-) "eof in comment") ; 
+
+#line 480 "../../src/lex.c"
+case -1: errorFPC__E ( ( char * ) "eof in comment") ; 
 
 #line 482 "../../src/lex.c"
 { 
@@ -2343,11 +2304,7 @@
 saved = 0 ; 
 } else 
 #line 510 "../../src/lex.c"
-_auto_lxchar = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 ) ? ( 
-#line 510 "../../src/lex.c"
-( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( ( struct _iobuf * 
-#line 510 "../../src/lex.c"
-) in_file ) ) ; 
+_auto_lxchar = fgetc ( ( struct _iobuf * ) in_file ) ; 
 
 #line 512 "../../src/lex.c"
 switch ( ( _auto_p = ( lxcp [ _auto_lxchar + 1 ] ) ) -> _LXDOPE_lxact ) { 
@@ -2516,19 +2473,17 @@
 ( txtfree ++ ) ) = '0' ) ) ) ; 
 
 #line 562 "../../src/lex.c"
-switch ( _auto_lxchar = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 ) ? ( 
-#line 562 "../../src/lex.c"
-( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( ( struct _iobuf * 
+switch ( _auto_lxchar = fgetc ( ( struct _iobuf * ) in_file ) ) { 
 #line 562 "../../src/lex.c"
-) in_file ) ) ) 
+case 'l' : case 
 #line 562 "../../src/lex.c"
-{ 
-#line 562 "../../src/lex.c"
-case 'l' : case 'L' : ( txtmax <= txtfree ) ? errorFI_PC__E ( 
-#line 562 "../../src/lex.c"
-( int ) 'i' , ( char * ) "input buffer overflow") : ( ( ( int 
-#line 562 "../../src/lex.c"
-) ( ( * ( txtfree ++ ) ) = 'L' ) ) ) ; 
+'L' : 
+#line 565 "../../src/lex.c"
+( txtmax <= txtfree ) ? errorFI_PC__E ( ( int ) 'i' , ( char * ) 
+#line 565 "../../src/lex.c"
+"input buffer overflow") : ( ( ( int ) ( ( * ( txtfree ++ ) ) 
+#line 565 "../../src/lex.c"
+= 'L' ) ) ) ; 
 
 #line 566 "../../src/lex.c"
 ( txtmax <= txtfree ) ? errorFI_PC__E ( ( int ) 'i' , ( char * ) "input buffer overflow") 
@@ -2558,15 +2513,13 @@
 #line 571 "../../src/lex.c"
 
 #line 573 "../../src/lex.c"
-switch ( _auto_lxchar = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 ) ? ( 
+switch ( _auto_lxchar = fgetc ( ( struct _iobuf * ) in_file ) ) { 
 #line 573 "../../src/lex.c"
-( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( ( struct _iobuf * 
+case 'l' : case 
 #line 573 "../../src/lex.c"
-) in_file ) ) ) 
-#line 573 "../../src/lex.c"
-{ 
-#line 573 "../../src/lex.c"
-case 'l' : case 'L' : txtfree -- ; 
+'L' : 
+#line 576 "../../src/lex.c"
+txtfree -- ; 
 
 #line 577 "../../src/lex.c"
 ( txtmax <= txtfree ) ? errorFI_PC__E ( ( int ) 'i' , ( char * ) "input buffer overflow") 
@@ -2616,17 +2569,13 @@
 ) = _auto_lxchar ) ) ) ; 
 
 #line 596 "../../src/lex.c"
-ox : switch ( _auto_lxchar = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 ) ? 
-#line 596 "../../src/lex.c"
-( ( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( ( struct 
-#line 596 "../../src/lex.c"
-_iobuf * ) in_file ) ) ) 
+ox : switch ( _auto_lxchar = fgetc ( ( struct _iobuf * ) in_file ) ) { 
 #line 597 "../../src/lex.c"
-{ 
-#line 597 "../../src/lex.c"
-case '8' : case '9' : errorFPC__E ( ( char * 
+case '8' : 
 #line 597 "../../src/lex.c"
-) "8 or 9 used as octal digit") ; 
+
+#line 599 "../../src/lex.c"
+case '9' : errorFPC__E ( ( char * ) "8 or 9 used as octal digit") ; 
 
 #line 601 "../../src/lex.c"
 case '0' : case '1' : case '2' : case '3' : case '4' : case '5' : case '6' : 
@@ -2710,14 +2659,12 @@
 lxget ( _auto_lxchar , 02 ) ; 
 
 #line 632 "../../src/lex.c"
-if ( ( _auto_lxchar = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 ) ? 
+if ( ( _auto_lxchar = fgetc ( ( struct _iobuf * ) in_file ) ) == '.' ) { 
 #line 632 "../../src/lex.c"
-( ( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( ( struct 
-#line 632 "../../src/lex.c"
-_iobuf * ) in_file ) ) ) == '.' ) 
-#line 632 "../../src/lex.c"
-{ 
+
 #line 632 "../../src/lex.c"
+
+#line 633 "../../src/lex.c"
 txtfree -- ; 
 
 #line 634 "../../src/lex.c"
@@ -2727,11 +2674,7 @@
 getfp : _auto_ret = 83 ; 
 
 #line 637 "../../src/lex.c"
-_auto_lxchar = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 ) ? ( ( * 
-#line 637 "../../src/lex.c"
-( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( ( struct _iobuf * ) in_file ) 
-#line 637 "../../src/lex.c"
-) ; 
+_auto_lxchar = fgetc ( ( struct _iobuf * ) in_file ) ; 
 } 
 #line 638 "../../src/lex.c"
 ; 
@@ -2742,19 +2685,17 @@
 case 'e' : case 'E' : txtfree -- ; 
 
 #line 644 "../../src/lex.c"
-switch ( _auto_lxchar = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 ) ? ( 
-#line 644 "../../src/lex.c"
-( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( ( struct _iobuf * 
-#line 644 "../../src/lex.c"
-) in_file ) ) ) 
+switch ( _auto_lxchar = fgetc ( ( struct _iobuf * ) in_file ) ) { 
 #line 644 "../../src/lex.c"
-{ 
-#line 644 "../../src/lex.c"
-case '-' : case '+' : ( txtmax <= txtfree ) ? errorFI_PC__E ( 
-#line 644 "../../src/lex.c"
-( int ) 'i' , ( char * ) "input buffer overflow") : ( ( ( int 
+case '-' : case 
 #line 644 "../../src/lex.c"
-) ( ( * ( txtfree ++ ) ) = 'e' ) ) ) ; 
+'+' : 
+#line 647 "../../src/lex.c"
+( txtmax <= txtfree ) ? errorFI_PC__E ( ( int ) 'i' , ( char * ) 
+#line 647 "../../src/lex.c"
+"input buffer overflow") : ( ( ( int ) ( ( * ( txtfree ++ ) ) 
+#line 647 "../../src/lex.c"
+= 'e' ) ) ) ; 
 
 #line 648 "../../src/lex.c"
 break ; 
@@ -2819,21 +2760,15 @@
 ; 
 
 #line 668 "../../src/lex.c"
-case 8 : if ( ( _auto_lxchar = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 
-#line 668 "../../src/lex.c"
-) ? ( ( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( 
+case 8 : if ( ( _auto_lxchar = fgetc ( ( struct _iobuf * ) in_file ) ) == 
 #line 668 "../../src/lex.c"
-( struct _iobuf * ) in_file ) ) ) == '.' ) 
+'.' ) 
 #line 669 "../../src/lex.c"
 { 
 #line 669 "../../src/lex.c"
-if ( ( _auto_lxchar = 
+if ( ( _auto_lxchar = fgetc ( ( struct _iobuf * ) in_file ) ) != 
 #line 669 "../../src/lex.c"
-( ( ( -- in_file -> __iobuf__cnt ) >= 0 ) ? ( ( * ( 
-#line 669 "../../src/lex.c"
-in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( ( struct _iobuf * ) in_file ) ) 
-#line 669 "../../src/lex.c"
-) != '.' ) 
+'.' ) 
 #line 670 "../../src/lex.c"
 { 
 #line 670 "../../src/lex.c"
@@ -2889,28 +2824,20 @@
 ; 
 
 #line 684 "../../src/lex.c"
-case 4 : for ( ;;) switch ( _auto_lxchar = ( ( ( -- in_file -> __iobuf__cnt ) 
+case 4 : for ( ;;) switch ( _auto_lxchar = fgetc ( ( struct _iobuf * ) in_file ) 
 #line 684 "../../src/lex.c"
->= 0 ) ? ( ( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) 
-#line 684 "../../src/lex.c"
-: _filbuf ( ( struct _iobuf * ) in_file ) ) ) 
+) 
 #line 687 "../../src/lex.c"
 { 
 #line 687 "../../src/lex.c"
-case '\\' : ( txtmax <= 
+case '\\' : ( txtmax <= txtfree ) ? errorFI_PC__E ( ( int ) 'i' , ( 
 #line 687 "../../src/lex.c"
-txtfree ) ? errorFI_PC__E ( ( int ) 'i' , ( char * ) "input buffer overflow") : ( 
-#line 687 "../../src/lex.c"
-( ( int ) ( ( * ( txtfree ++ ) ) = '\\' ) ) 
+char * ) "input buffer overflow") : ( ( ( int ) ( ( * ( 
 #line 687 "../../src/lex.c"
-) ; 
+txtfree ++ ) ) = '\\' ) ) ) ; 
 
 #line 690 "../../src/lex.c"
-_auto_lxchar = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 ) ? ( ( * 
-#line 690 "../../src/lex.c"
-( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( ( struct _iobuf * ) in_file ) 
-#line 690 "../../src/lex.c"
-) ; 
+_auto_lxchar = fgetc ( ( struct _iobuf * ) in_file ) ; 
 
 #line 691 "../../src/lex.c"
 if ( _auto_lxchar == 'x' ) hex_to_oct ( ) ; 
@@ -3036,11 +2963,7 @@
 #line 722 "../../src/lex.c"
 ( ( int ) ( ( * ( txtfree ++ ) ) = ( _auto_j = 
 #line 722 "../../src/lex.c"
-( ( ( -- in_file -> __iobuf__cnt ) >= 0 ) ? ( ( * ( 
-#line 722 "../../src/lex.c"
-in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( ( struct _iobuf * ) in_file ) ) 
-#line 722 "../../src/lex.c"
-) ) ) ) ; 
+fgetc ( ( struct _iobuf * ) in_file ) ) ) ) ) ; 
 
 #line 724 "../../src/lex.c"
 if ( _auto_j == '`' ) break ; 
@@ -3069,14 +2992,12 @@
 ; 
 } 
 #line 732 "../../src/lex.c"
-case 7 : switch ( _auto_lxchar = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 
+case 7 : switch ( _auto_lxchar = fgetc ( ( struct _iobuf * ) in_file ) ) { 
 #line 732 "../../src/lex.c"
-) ? ( ( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( 
-#line 732 "../../src/lex.c"
-( struct _iobuf * ) in_file ) ) ) 
-#line 733 "../../src/lex.c"
-{ 
+
 #line 733 "../../src/lex.c"
+
+#line 734 "../../src/lex.c"
 case '*' : lxcom ( ) ; 
 
 #line 736 "../../src/lex.c"
@@ -3223,19 +3144,15 @@
 ; 
 
 #line 781 "../../src/lex.c"
-case 17 : switch ( _auto_lxchar = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 ) 
-#line 781 "../../src/lex.c"
-? ( ( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( ( 
-#line 781 "../../src/lex.c"
-struct _iobuf * ) in_file ) ) ) 
+case 17 : switch ( _auto_lxchar = fgetc ( ( struct _iobuf * ) in_file ) ) { 
 #line 782 "../../src/lex.c"
-{ 
+case 
 #line 782 "../../src/lex.c"
-case '=' : { 
+'=' : 
 #line 784 "../../src/lex.c"
-addtok ( 92 , ( ( 
+{ 
 #line 784 "../../src/lex.c"
-_auto__Xy_rtFI___global . __C10_t = 62 ) , _auto__Xy_rtFI___global ) ) ; 
+addtok ( 92 , ( ( _auto__Xy_rtFI___global . __C10_t = 62 ) , _auto__Xy_rtFI___global ) ) ; 
 
 #line 784 "../../src/lex.c"
 { 
@@ -3262,20 +3179,17 @@
 ; 
 } 
 #line 790 "../../src/lex.c"
-case 28 : switch ( _auto_lxchar = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 
+case 28 : switch ( _auto_lxchar = fgetc ( ( struct _iobuf * ) in_file ) ) { 
 #line 790 "../../src/lex.c"
-) ? ( ( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( 
-#line 790 "../../src/lex.c"
-( struct _iobuf * ) in_file ) ) ) 
-#line 791 "../../src/lex.c"
-{ 
+
 #line 791 "../../src/lex.c"
+
+#line 792 "../../src/lex.c"
 case ':' : { 
 #line 793 "../../src/lex.c"
-addtok ( 160 , ( 
-#line 793 "../../src/lex.c"
-( _auto__Xy_rtFI___global . __C10_t = ( ( int ) 0 ) ) , _auto__Xy_rtFI___global ) ) ; 
+addtok ( 160 , ( ( _auto__Xy_rtFI___global . __C10_t = ( ( int ) 0 
 #line 793 "../../src/lex.c"
+) ) , _auto__Xy_rtFI___global ) ) ; 
 
 #line 793 "../../src/lex.c"
 { 
@@ -3318,19 +3232,16 @@
 ; 
 } 
 #line 801 "../../src/lex.c"
-case 24 : switch ( _auto_lxchar = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 
-#line 801 "../../src/lex.c"
-) ? ( ( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( 
+case 24 : switch ( _auto_lxchar = fgetc ( ( struct _iobuf * ) in_file ) ) { 
 #line 801 "../../src/lex.c"
-( struct _iobuf * ) in_file ) ) ) 
-#line 802 "../../src/lex.c"
-{ 
+
 #line 802 "../../src/lex.c"
+
+#line 803 "../../src/lex.c"
 case '=' : { 
 #line 804 "../../src/lex.c"
-addtok ( 92 , ( 
+addtok ( 92 , ( ( _auto__Xy_rtFI___global . __C10_t = 63 ) , _auto__Xy_rtFI___global ) ) ; 
 #line 804 "../../src/lex.c"
-( _auto__Xy_rtFI___global . __C10_t = 63 ) , _auto__Xy_rtFI___global ) ) ; 
 
 #line 804 "../../src/lex.c"
 { 
@@ -3357,29 +3268,21 @@
 ; 
 } 
 #line 809 "../../src/lex.c"
-case 19 : switch ( _auto_lxchar = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 
-#line 809 "../../src/lex.c"
-) ? ( ( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( 
+case 19 : switch ( _auto_lxchar = fgetc ( ( struct _iobuf * ) in_file ) ) { 
 #line 809 "../../src/lex.c"
-( struct _iobuf * ) in_file ) ) ) 
-#line 810 "../../src/lex.c"
-{ 
-#line 810 "../../src/lex.c"
-case '>' : switch ( _auto_lxchar = ( 
-#line 810 "../../src/lex.c"
-( ( -- in_file -> __iobuf__cnt ) >= 0 ) ? ( ( * ( in_file -> 
-#line 810 "../../src/lex.c"
-__iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( ( struct _iobuf * ) in_file ) ) ) 
+
 #line 810 "../../src/lex.c"
 
+#line 811 "../../src/lex.c"
+case '>' : switch ( _auto_lxchar = fgetc ( ( struct _iobuf * ) in_file ) ) { 
 #line 812 "../../src/lex.c"
-{ 
+case 
 #line 812 "../../src/lex.c"
-case '=' : { 
+'=' : 
 #line 814 "../../src/lex.c"
-addtok ( 90 , ( ( _auto__Xy_rtFI___global . __C10_t = 135 ) , _auto__Xy_rtFI___global ) ) 
+{ 
 #line 814 "../../src/lex.c"
-; 
+addtok ( 90 , ( ( _auto__Xy_rtFI___global . __C10_t = 135 ) , _auto__Xy_rtFI___global ) ) ; 
 
 #line 814 "../../src/lex.c"
 { 
@@ -3440,29 +3343,21 @@
 ; 
 } 
 #line 826 "../../src/lex.c"
-case 18 : switch ( _auto_lxchar = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 
+case 18 : switch ( _auto_lxchar = fgetc ( ( struct _iobuf * ) in_file ) ) { 
 #line 826 "../../src/lex.c"
-) ? ( ( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( 
-#line 826 "../../src/lex.c"
-( struct _iobuf * ) in_file ) ) ) 
-#line 827 "../../src/lex.c"
-{ 
-#line 827 "../../src/lex.c"
-case '<' : switch ( _auto_lxchar = ( 
-#line 827 "../../src/lex.c"
-( ( -- in_file -> __iobuf__cnt ) >= 0 ) ? ( ( * ( in_file -> 
-#line 827 "../../src/lex.c"
-__iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( ( struct _iobuf * ) in_file ) ) ) 
+
 #line 827 "../../src/lex.c"
 
+#line 828 "../../src/lex.c"
+case '<' : switch ( _auto_lxchar = fgetc ( ( struct _iobuf * ) in_file ) ) { 
 #line 829 "../../src/lex.c"
-{ 
+case 
 #line 829 "../../src/lex.c"
-case '=' : { 
+'=' : 
 #line 831 "../../src/lex.c"
-addtok ( 90 , ( ( _auto__Xy_rtFI___global . __C10_t = 134 ) , _auto__Xy_rtFI___global ) ) 
+{ 
 #line 831 "../../src/lex.c"
-; 
+addtok ( 90 , ( ( _auto__Xy_rtFI___global . __C10_t = 134 ) , _auto__Xy_rtFI___global ) ) ; 
 
 #line 831 "../../src/lex.c"
 { 
@@ -3520,19 +3415,16 @@
 ; 
 } 
 #line 842 "../../src/lex.c"
-case 22 : switch ( _auto_lxchar = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 
-#line 842 "../../src/lex.c"
-) ? ( ( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( 
+case 22 : switch ( _auto_lxchar = fgetc ( ( struct _iobuf * ) in_file ) ) { 
 #line 842 "../../src/lex.c"
-( struct _iobuf * ) in_file ) ) ) 
-#line 843 "../../src/lex.c"
-{ 
+
 #line 843 "../../src/lex.c"
+
+#line 844 "../../src/lex.c"
 case '&' : { 
 #line 845 "../../src/lex.c"
-addtok ( 66 , ( 
+addtok ( 66 , ( ( _auto__Xy_rtFI___global . __C10_t = 66 ) , _auto__Xy_rtFI___global ) ) ; 
 #line 845 "../../src/lex.c"
-( _auto__Xy_rtFI___global . __C10_t = 66 ) , _auto__Xy_rtFI___global ) ) ; 
 
 #line 845 "../../src/lex.c"
 { 
@@ -3573,19 +3465,16 @@
 ; 
 } 
 #line 852 "../../src/lex.c"
-case 21 : switch ( _auto_lxchar = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 
+case 21 : switch ( _auto_lxchar = fgetc ( ( struct _iobuf * ) in_file ) ) { 
 #line 852 "../../src/lex.c"
-) ? ( ( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( 
-#line 852 "../../src/lex.c"
-( struct _iobuf * ) in_file ) ) ) 
-#line 853 "../../src/lex.c"
-{ 
+
 #line 853 "../../src/lex.c"
+
+#line 854 "../../src/lex.c"
 case '|' : { 
 #line 855 "../../src/lex.c"
-addtok ( 67 , ( 
+addtok ( 67 , ( ( _auto__Xy_rtFI___global . __C10_t = 67 ) , _auto__Xy_rtFI___global ) ) ; 
 #line 855 "../../src/lex.c"
-( _auto__Xy_rtFI___global . __C10_t = 67 ) , _auto__Xy_rtFI___global ) ) ; 
 
 #line 855 "../../src/lex.c"
 { 
@@ -3626,19 +3515,16 @@
 ; 
 } 
 #line 862 "../../src/lex.c"
-case 20 : switch ( _auto_lxchar = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 
+case 20 : switch ( _auto_lxchar = fgetc ( ( struct _iobuf * ) in_file ) ) { 
 #line 862 "../../src/lex.c"
-) ? ( ( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( 
-#line 862 "../../src/lex.c"
-( struct _iobuf * ) in_file ) ) ) 
-#line 863 "../../src/lex.c"
-{ 
+
 #line 863 "../../src/lex.c"
+
+#line 864 "../../src/lex.c"
 case '=' : { 
 #line 865 "../../src/lex.c"
-addtok ( 90 , ( 
+addtok ( 90 , ( ( _auto__Xy_rtFI___global . __C10_t = 133 ) , _auto__Xy_rtFI___global ) ) ; 
 #line 865 "../../src/lex.c"
-( _auto__Xy_rtFI___global . __C10_t = 133 ) , _auto__Xy_rtFI___global ) ) ; 
 
 #line 865 "../../src/lex.c"
 { 
@@ -3665,19 +3551,16 @@
 ; 
 } 
 #line 870 "../../src/lex.c"
-case 27 : switch ( _auto_lxchar = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 
+case 27 : switch ( _auto_lxchar = fgetc ( ( struct _iobuf * ) in_file ) ) { 
 #line 870 "../../src/lex.c"
-) ? ( ( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( 
-#line 870 "../../src/lex.c"
-( struct _iobuf * ) in_file ) ) ) 
-#line 871 "../../src/lex.c"
-{ 
+
 #line 871 "../../src/lex.c"
+
+#line 872 "../../src/lex.c"
 case '=' : { 
 #line 873 "../../src/lex.c"
-addtok ( 90 , ( 
+addtok ( 90 , ( ( _auto__Xy_rtFI___global . __C10_t = 126 ) , _auto__Xy_rtFI___global ) ) ; 
 #line 873 "../../src/lex.c"
-( _auto__Xy_rtFI___global . __C10_t = 126 ) , _auto__Xy_rtFI___global ) ) ; 
 
 #line 873 "../../src/lex.c"
 { 
@@ -3718,19 +3601,16 @@
 ; 
 } 
 #line 880 "../../src/lex.c"
-case 25 : switch ( _auto_lxchar = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 
-#line 880 "../../src/lex.c"
-) ? ( ( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( 
+case 25 : switch ( _auto_lxchar = fgetc ( ( struct _iobuf * ) in_file ) ) { 
 #line 880 "../../src/lex.c"
-( struct _iobuf * ) in_file ) ) ) 
-#line 881 "../../src/lex.c"
-{ 
+
 #line 881 "../../src/lex.c"
+
+#line 882 "../../src/lex.c"
 case '=' : { 
 #line 883 "../../src/lex.c"
-addtok ( 90 , ( 
+addtok ( 90 , ( ( _auto__Xy_rtFI___global . __C10_t = 127 ) , _auto__Xy_rtFI___global ) ) ; 
 #line 883 "../../src/lex.c"
-( _auto__Xy_rtFI___global . __C10_t = 127 ) , _auto__Xy_rtFI___global ) ) ; 
 
 #line 883 "../../src/lex.c"
 { 
@@ -3785,19 +3665,16 @@
 ; 
 } 
 #line 892 "../../src/lex.c"
-case 26 : switch ( _auto_lxchar = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 
-#line 892 "../../src/lex.c"
-) ? ( ( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( 
+case 26 : switch ( _auto_lxchar = fgetc ( ( struct _iobuf * ) in_file ) ) { 
 #line 892 "../../src/lex.c"
-( struct _iobuf * ) in_file ) ) ) 
-#line 893 "../../src/lex.c"
-{ 
+
 #line 893 "../../src/lex.c"
+
+#line 894 "../../src/lex.c"
 case '=' : { 
 #line 895 "../../src/lex.c"
-addtok ( 90 , ( 
+addtok ( 90 , ( ( _auto__Xy_rtFI___global . __C10_t = 128 ) , _auto__Xy_rtFI___global ) ) ; 
 #line 895 "../../src/lex.c"
-( _auto__Xy_rtFI___global . __C10_t = 128 ) , _auto__Xy_rtFI___global ) ) ; 
 
 #line 895 "../../src/lex.c"
 { 
@@ -3827,19 +3704,16 @@
 ; 
 } 
 #line 902 "../../src/lex.c"
-case 23 : switch ( _auto_lxchar = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 
-#line 902 "../../src/lex.c"
-) ? ( ( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( 
+case 23 : switch ( _auto_lxchar = fgetc ( ( struct _iobuf * ) in_file ) ) { 
 #line 902 "../../src/lex.c"
-( struct _iobuf * ) in_file ) ) ) 
-#line 903 "../../src/lex.c"
-{ 
+
 #line 903 "../../src/lex.c"
+
+#line 904 "../../src/lex.c"
 case '=' : { 
 #line 905 "../../src/lex.c"
-addtok ( 90 , ( 
+addtok ( 90 , ( ( _auto__Xy_rtFI___global . __C10_t = 130 ) , _auto__Xy_rtFI___global ) ) ; 
 #line 905 "../../src/lex.c"
-( _auto__Xy_rtFI___global . __C10_t = 130 ) , _auto__Xy_rtFI___global ) ) ; 
 
 #line 905 "../../src/lex.c"
 { 
@@ -3884,18 +3758,15 @@
 char * _auto_fn ; 
 
 #line 928 "../../src/lex.c"
-for ( ;;) switch ( _auto_c = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 
+for ( ;;) switch ( _auto_c = fgetc ( ( struct _iobuf * ) in_file ) ) { 
 #line 928 "../../src/lex.c"
-) ? ( ( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( 
-#line 928 "../../src/lex.c"
-( struct _iobuf * ) in_file ) ) ) 
-#line 929 "../../src/lex.c"
-{ 
+
 #line 929 "../../src/lex.c"
+
+#line 930 "../../src/lex.c"
 default : { 
 #line 931 "../../src/lex.c"
 { _auto__result = _auto_c ; 
-#line 931 "../../src/lex.c"
 
 #line 931 "../../src/lex.c"
 return _auto__result ; 
@@ -3916,41 +3787,33 @@
 case '#' : curloc . _loc_line = 0 ; 
 
 #line 942 "../../src/lex.c"
-for ( ;;) switch ( _auto_c = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 
-#line 942 "../../src/lex.c"
-) ? ( ( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( 
+for ( ;;) switch ( _auto_c = fgetc ( ( struct _iobuf * ) in_file ) ) { 
 #line 942 "../../src/lex.c"
-( struct _iobuf * ) in_file ) ) ) 
-#line 943 "../../src/lex.c"
-{ 
+
 #line 943 "../../src/lex.c"
+
+#line 944 "../../src/lex.c"
 case '"' : txtstart = txtfree ; 
 
 #line 946 "../../src/lex.c"
-for ( ;;) switch ( _auto_c = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 
-#line 946 "../../src/lex.c"
-) ? ( ( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( 
+for ( ;;) switch ( _auto_c = fgetc ( ( struct _iobuf * ) in_file ) ) { 
 #line 946 "../../src/lex.c"
-( struct _iobuf * ) in_file ) ) ) 
-#line 947 "../../src/lex.c"
-{ 
-#line 947 "../../src/lex.c"
-case '"' : ( txtmax <= txtfree ) ? 
-#line 947 "../../src/lex.c"
-errorFI_PC__E ( ( int ) 'i' , ( char * ) "input buffer overflow") : ( ( ( 
-#line 947 "../../src/lex.c"
-int ) ( ( * ( txtfree ++ ) ) = '\0' ) ) ) ; 
+
 #line 947 "../../src/lex.c"
 
+#line 948 "../../src/lex.c"
+case '"' : ( txtmax <= txtfree ) ? errorFI_PC__E ( ( int ) 'i' , ( char * 
+#line 948 "../../src/lex.c"
+) "input buffer overflow") : ( ( ( int ) ( ( * ( txtfree ++ ) 
+#line 948 "../../src/lex.c"
+) = '\0' ) ) ) ; 
+
 #line 950 "../../src/lex.c"
-if ( ( _auto_c = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 ) ? 
-#line 950 "../../src/lex.c"
-( ( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( ( struct 
-#line 950 "../../src/lex.c"
-_iobuf * ) in_file ) ) ) != '\n' ) 
+while ( ( ( _auto_c = fgetc ( ( struct _iobuf * ) in_file ) ) != '\n' ) 
 #line 950 "../../src/lex.c"
-errorFPC__E ( ( char * ) "unX eol on # line") ; 
+&& ( _auto_c != -1) ) 
 #line 950 "../../src/lex.c"
+; 
 
 #line 951 "../../src/lex.c"
 if ( * txtstart ) { 
@@ -4062,20 +3925,16 @@
 #line 1004 "../../src/lex.c"
 : ( ( ( int ) ( ( * ( txtfree ++ ) ) = 
 #line 1004 "../../src/lex.c"
-'i' ) ) ) ; 
+_auto_c ) ) ) ; 
 
 #line 1005 "../../src/lex.c"
-while ( ( _auto_c = ( ( ( -- in_file -> __iobuf__cnt ) >= 0 ) ? 
-#line 1005 "../../src/lex.c"
-( ( * ( in_file -> __iobuf__ptr ++ ) ) & 0377 ) : _filbuf ( ( struct 
-#line 1005 "../../src/lex.c"
-_iobuf * ) in_file ) ) ) != '\n' ) 
+while ( ( _auto_c = fgetc ( ( struct _iobuf * ) in_file ) ) != '\n' ) ( 
 #line 1005 "../../src/lex.c"
-( txtmax <= txtfree ) ? errorFI_PC__E ( ( int 
+txtmax <= txtfree ) ? errorFI_PC__E ( ( int ) 'i' , ( char * ) "input buffer overflow") : 
 #line 1005 "../../src/lex.c"
-) 'i' , ( char * ) "input buffer overflow") : ( ( ( int ) ( 
+( ( ( int ) ( ( * ( txtfree ++ ) ) = _auto_c ) 
 #line 1005 "../../src/lex.c"
-( * ( txtfree ++ ) ) = _auto_c ) ) ) ; 
+) ) ; 
 
 #line 1006 "../../src/lex.c"
 ( txtmax <= txtfree ) ? errorFI_PC__E ( ( int ) 'i' , ( char * ) "input buffer overflow") 
diff -uwrN cfront-1a/scratch/src/main..c cfront-1b/scratch/src/main..c
--- cfront-1a/scratch/src/main..c	1986-02-07 16:34:33.000000000 +0100
+++ cfront-1b/scratch/src/main..c	2007-09-22 15:17:21.000000000 +0200
@@ -52,15 +52,45 @@
 #line 23 "../../incl/time.h"
 extern char * tzname [ 2] ; 
 
-#line 13 "../../incl/ctype.h"
-extern char _ctype [ ] ; 
-
 #line 32 "../../incl/ctype.h"
 extern int toupper ( ) ; 
 
 #line 33 "../../incl/ctype.h"
 extern int tolower ( ) ; 
 
+#line 35 "../../incl/ctype.h"
+int isalnum ( ) ; 
+
+#line 36 "../../incl/ctype.h"
+int isalpha ( ) ; 
+
+#line 37 "../../incl/ctype.h"
+int iscntrl ( ) ; 
+
+#line 38 "../../incl/ctype.h"
+int isdigit ( ) ; 
+
+#line 39 "../../incl/ctype.h"
+int isgraph ( ) ; 
+
+#line 40 "../../incl/ctype.h"
+int islower ( ) ; 
+
+#line 41 "../../incl/ctype.h"
+int isprint ( ) ; 
+
+#line 42 "../../incl/ctype.h"
+int ispunct ( ) ; 
+
+#line 43 "../../incl/ctype.h"
+int isspace ( ) ; 
+
+#line 44 "../../incl/ctype.h"
+int isupper ( ) ; 
+
+#line 45 "../../incl/ctype.h"
+int isxdigit ( ) ; 
+
 #line 24 "../../src/main.c"
 extern char * ctime ( ) ; 
 
@@ -74,18 +104,6 @@
 long stop_time = 0 ; 
 typedef char * va_list ; 
 
-#line 12 "../../incl/stdio.h"
-struct _iobuf { /* sizeof = 16 */
-int __iobuf__cnt ; 
-char * __iobuf__ptr ; 
-char * __iobuf__base ; 
-char __iobuf__flag ; 
-char __iobuf__file ; 
-} ; 
-
-#line 20 "../../incl/stdio.h"
-extern struct _iobuf _iob [ 20] ; 
-
 #line 36 "../../incl/stdio.h"
 extern int _flsbuf ( ) ; 
 
@@ -224,9 +242,6 @@
 #line 106 "../../incl/stdio.h"
 extern int perror ( ) ; 
 
-#line 108 "../../incl/stdio.h"
-extern int errno ; 
-
 #line 109 "../../incl/stdio.h"
 extern char * sys_errlist [ ] ; 
 
@@ -236,6 +251,30 @@
 #line 111 "../../incl/stdio.h"
 extern unsigned char * _bufendtab [ ] ; 
 
+#line 113 "../../incl/stdio.h"
+int feof ( ) ; 
+
+#line 114 "../../incl/stdio.h"
+int ferror ( ) ; 
+
+#line 115 "../../incl/stdio.h"
+int fileno ( ) ; 
+
+#line 116 "../../incl/stdio.h"
+char * strerror ( ) ; 
+
+#line 118 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdin ( ) ; 
+
+#line 119 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdout ( ) ; 
+
+#line 120 "../../incl/stdio.h"
+extern struct _iobuf * _get_stderr ( ) ; 
+
+#line 132 "../../incl/stdio.h"
+int _main ( ) ; 
+
 #line 6 "../../src/token.h"
 extern int lex_clear ( ) ; 
 
@@ -1474,92 +1513,83 @@
 #line 66 "../../src/main.c"
 { 
 #line 66 "../../src/main.c"
-if ( _auto_s ) fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] 
+if ( _auto_s ) fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( char 
 #line 66 "../../src/main.c"
-) ) , ( char * ) "%s:\n", _auto_s ) ; 
+* ) "%s:\n", _auto_s ) ; 
 
 #line 68 "../../src/main.c"
-fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , ( 
+fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( char * ) "files=%d lines=%d tokens=%d\n", Nfile , 
 #line 68 "../../src/main.c"
-char * ) "files=%d lines=%d tokens=%d\n", Nfile , Nline , Ntoken ) ; 
+Nline , Ntoken ) ; 
 
 #line 70 "../../src/main.c"
-fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , ( 
-#line 70 "../../src/main.c"
-char * ) "Names: distinct=%d global=%d type=%d\n", Nname , ( ( ( ( struct table * ) gtbl ) -> 
+fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( char * ) "Names: distinct=%d global=%d type=%d\n", Nname , 
 #line 70 "../../src/main.c"
-_table_free_slot - 1 ) ) , ( ( ( ( struct table * ) ktbl ) -> _table_free_slot - 
+( ( ( ( struct table * ) gtbl ) -> _table_free_slot - 1 ) ) , ( 
 #line 70 "../../src/main.c"
-1 ) ) ) ; 
+( ( ( struct table * ) ktbl ) -> _table_free_slot - 1 ) ) ) ; 
 
 #line 71 "../../src/main.c"
-fflush ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) ) ; 
-#line 71 "../../src/main.c"
+fflush ( ( struct _iobuf * ) _get_stderr ( ) ) ; 
 
 #line 72 "../../src/main.c"
 if ( start_time && stop_time ) { 
 #line 72 "../../src/main.c"
-fprintf ( ( struct _iobuf * ) ( & ( _iob [ 
+fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( 
 #line 72 "../../src/main.c"
-2 ] ) ) , ( char * ) "start time: %s", ctime ( ( long * ) 
+char * ) "start time: %s", ctime ( ( long * ) ( & start_time ) ) ) 
 #line 72 "../../src/main.c"
-( & start_time ) ) ) ; 
+; 
 
 #line 74 "../../src/main.c"
-fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , ( 
-#line 74 "../../src/main.c"
-char * ) "stop time:  %s", ctime ( ( long * ) ( & stop_time ) ) ) 
+fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( char * ) "stop time:  %s", ctime ( 
 #line 74 "../../src/main.c"
-; 
+( long * ) ( & stop_time ) ) ) ; 
 
 #line 76 "../../src/main.c"
-fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , ( 
+fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( char * ) "real time delay %ld: %d lines per second\n", stop_time - 
 #line 76 "../../src/main.c"
-char * ) "real time delay %ld: %d lines per second\n", stop_time - start_time , Nline / ( stop_time - start_time ) ) ; 
+start_time , Nline / ( ( stop_time - start_time ) + 1 ) ) ; 
 
 #line 77 "../../src/main.c"
-fflush ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) ) ; 
-#line 77 "../../src/main.c"
+fflush ( ( struct _iobuf * ) _get_stderr ( ) ) ; 
 } 
 #line 80 "../../src/main.c"
-fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , 
+fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( char * ) "free store=%dbytes alloc()=%d free()=%d ", 
 #line 80 "../../src/main.c"
-( char * ) "free store=%dbytes alloc()=%d free()=%d ", Nfree_store , Nalloc , Nfree ) ; 
+Nfree_store , Nalloc , Nfree ) ; 
 
 #line 81 "../../src/main.c"
 print_free ( ) ; 
 
 #line 82 "../../src/main.c"
-fflush ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) ) ; 
-#line 82 "../../src/main.c"
+fflush ( ( struct _iobuf * ) _get_stderr ( ) ) ; 
 
 #line 86 "../../src/main.c"
-fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , ( 
+fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( char * ) "sizeof: n=%d bt=%d f=%d p=%d v=%d e=%d c=%d l=%d\n", 68, 
 #line 86 "../../src/main.c"
-char * ) "sizeof: n=%d bt=%d f=%d p=%d v=%d e=%d c=%d l=%d\n", 68, 36, 52, 16, 20, 24, 24, 16 ) ; 
+36, 52, 16, 20, 24, 24, 16 ) ; 
 
 #line 88 "../../src/main.c"
-fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , ( 
+fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( char * ) "alloc(): n=%d bt=%d t=%d e=%d s=%d c=%d str=%d l=%d\n", Nn , 
 #line 88 "../../src/main.c"
-char * ) "alloc(): n=%d bt=%d t=%d e=%d s=%d c=%d str=%d l=%d\n", Nn , Nbt , Nt , Ne , Ns , Nc , Nstr , Nl ) ; 
+Nbt , Nt , Ne , Ns , Nc , Nstr , Nl ) ; 
 
 #line 90 "../../src/main.c"
-fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , ( 
+fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( char * ) "free(): n=%d bt=%d t=%d e=%d s=%d c=%d str=? l=%d\n", NFn , 
 #line 90 "../../src/main.c"
-char * ) "free(): n=%d bt=%d t=%d e=%d s=%d c=%d str=? l=%d\n", NFn , NFbt , NFpv + NFf , NFe , NFs , NFc , NFl ) ; 
+NFbt , NFpv + NFf , NFe , NFs , NFc , NFl ) ; 
 
 #line 91 "../../src/main.c"
-fflush ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) ) ; 
-#line 91 "../../src/main.c"
+fflush ( ( struct _iobuf * ) _get_stderr ( ) ) ; 
 
 #line 92 "../../src/main.c"
-fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , ( 
+fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( char * ) "%d errors\n", error_count ) 
 #line 92 "../../src/main.c"
-char * ) "%d errors\n", error_count ) ; 
+; 
 
 #line 93 "../../src/main.c"
-fflush ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) ) ; 
-#line 93 "../../src/main.c"
+fflush ( ( struct _iobuf * ) _get_stderr ( ) ) ; 
 } ; 
 
 #line 96 "../../src/main.c"
@@ -2127,6 +2157,10 @@
 register char * _auto_cp ; 
 short _auto_i ; 
 
+#line 360 "../../src/main.c"
+( ( out_file = _get_stdout ( ) ) , ( in_file = _get_stdin ( ) ) ) ; 
+#line 360 "../../src/main.c"
+
 #line 361 "../../src/main.c"
 error_init ( ) ; 
 
@@ -2149,9 +2183,7 @@
 #line 367 "../../src/main.c"
 case 't' : fprintf ( ( 
 #line 367 "../../src/main.c"
-struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , ( char * 
-#line 367 "../../src/main.c"
-) "type check only\n") ; 
+struct _iobuf * ) _get_stderr ( ) , ( char * ) "type check only\n") ; 
 
 #line 370 "../../src/main.c"
 Ssimpl = 0 ; 
@@ -2160,9 +2192,9 @@
 break ; 
 
 #line 372 "../../src/main.c"
-case 's' : fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) 
+case 's' : fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( char * ) 
 #line 372 "../../src/main.c"
-, ( char * ) "syntax check only\n") ; 
+"syntax check only\n") ; 
 
 #line 374 "../../src/main.c"
 Styp = ( Ssimpl = 0 ) ; 
@@ -2193,9 +2225,7 @@
 #line 386 "../../src/main.c"
 fprintf ( ( 
 #line 386 "../../src/main.c"
-struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , ( char * 
-#line 386 "../../src/main.c"
-) "bad size-table (option +x)") ; 
+struct _iobuf * ) _get_stderr ( ) , ( char * ) "bad size-table (option +x)") ; 
 
 #line 388 "../../src/main.c"
 exit ( 11 ) ; 
@@ -2228,9 +2258,9 @@
 break ; 
 
 #line 403 "../../src/main.c"
-default : fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) 
+default : fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( char * ) 
 #line 403 "../../src/main.c"
-, ( char * ) "%s: unexpected option: +%c ignored\n", prog_name , * _auto_cp ) ; 
+"%s: unexpected option: +%c ignored\n", prog_name , * _auto_cp ) ; 
 
 #line 406 "../../src/main.c"
 break ; 
@@ -2239,9 +2269,9 @@
 xx : break ; 
 
 #line 411 "../../src/main.c"
-default : fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) 
+default : fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( char * ) 
 #line 411 "../../src/main.c"
-, ( char * ) "%s: bad argument \"%s\"\n", prog_name , _auto_cp ) ; 
+"%s: bad argument \"%s\"\n", prog_name , _auto_cp ) ; 
 
 #line 413 "../../src/main.c"
 exit ( 11 ) ; 
@@ -2268,9 +2298,7 @@
 print_align ( afile ) ; 
 } 
 #line 428 "../../src/main.c"
-fflush ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) ) 
-#line 428 "../../src/main.c"
-; 
+fflush ( ( struct _iobuf * ) _get_stderr ( ) ) ; 
 
 #line 429 "../../src/main.c"
 if ( Ssimpl ) print_mode = 3 ; 
@@ -2355,15 +2383,13 @@
 _auto_p = _auto_name ; 
 
 #line 462 "../../src/main.c"
-while ( * ( ++ _auto_p ) ) if ( ( ! ( ( ( 
-#line 462 "../../src/main.c"
-_ctype + 1 ) [ * _auto_p ] ) & 3) ) && ( ! ( ( 
+while ( * ( ++ _auto_p ) ) if ( ( ! isalpha ( ( int 
 #line 462 "../../src/main.c"
-( _ctype + 1 ) [ * _auto_p ] ) & 04 ) ) ) 
+) ( * _auto_p ) ) ) && ( ! isdigit ( ( int ) ( 
 #line 462 "../../src/main.c"
-( * _auto_p ) 
+* _auto_p ) ) ) ) 
 #line 462 "../../src/main.c"
-= '_' ; 
+( * _auto_p ) = '_' ; 
 
 #line 463 "../../src/main.c"
 { 
diff -uwrN cfront-1a/scratch/src/norm2..c cfront-1b/scratch/src/norm2..c
--- cfront-1a/scratch/src/norm2..c	1986-02-07 16:34:46.000000000 +0100
+++ cfront-1b/scratch/src/norm2..c	2007-09-22 15:17:21.000000000 +0200
@@ -10,18 +10,6 @@
 #line 1 "../../src/norm2.c"
 typedef char * va_list ; 
 
-#line 12 "../../incl/stdio.h"
-struct _iobuf { /* sizeof = 16 */
-int __iobuf__cnt ; 
-char * __iobuf__ptr ; 
-char * __iobuf__base ; 
-char __iobuf__flag ; 
-char __iobuf__file ; 
-} ; 
-
-#line 20 "../../incl/stdio.h"
-extern struct _iobuf _iob [ 20] ; 
-
 #line 36 "../../incl/stdio.h"
 extern int _flsbuf ( ) ; 
 
@@ -160,9 +148,6 @@
 #line 106 "../../incl/stdio.h"
 extern int perror ( ) ; 
 
-#line 108 "../../incl/stdio.h"
-extern int errno ; 
-
 #line 109 "../../incl/stdio.h"
 extern char * sys_errlist [ ] ; 
 
@@ -172,6 +157,30 @@
 #line 111 "../../incl/stdio.h"
 extern unsigned char * _bufendtab [ ] ; 
 
+#line 113 "../../incl/stdio.h"
+int feof ( ) ; 
+
+#line 114 "../../incl/stdio.h"
+int ferror ( ) ; 
+
+#line 115 "../../incl/stdio.h"
+int fileno ( ) ; 
+
+#line 116 "../../incl/stdio.h"
+char * strerror ( ) ; 
+
+#line 118 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdin ( ) ; 
+
+#line 119 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdout ( ) ; 
+
+#line 120 "../../incl/stdio.h"
+extern struct _iobuf * _get_stderr ( ) ; 
+
+#line 132 "../../incl/stdio.h"
+int _main ( ) ; 
+
 #line 6 "../../src/token.h"
 extern int lex_clear ( ) ; 
 
diff -uwrN cfront-1a/scratch/src/norm..c cfront-1b/scratch/src/norm..c
--- cfront-1a/scratch/src/norm..c	1986-02-07 16:34:42.000000000 +0100
+++ cfront-1b/scratch/src/norm..c	2007-09-22 15:17:21.000000000 +0200
@@ -10,18 +10,6 @@
 #line 1 "../../src/norm.c"
 typedef char * va_list ; 
 
-#line 12 "../../incl/stdio.h"
-struct _iobuf { /* sizeof = 16 */
-int __iobuf__cnt ; 
-char * __iobuf__ptr ; 
-char * __iobuf__base ; 
-char __iobuf__flag ; 
-char __iobuf__file ; 
-} ; 
-
-#line 20 "../../incl/stdio.h"
-extern struct _iobuf _iob [ 20] ; 
-
 #line 36 "../../incl/stdio.h"
 extern int _flsbuf ( ) ; 
 
@@ -160,9 +148,6 @@
 #line 106 "../../incl/stdio.h"
 extern int perror ( ) ; 
 
-#line 108 "../../incl/stdio.h"
-extern int errno ; 
-
 #line 109 "../../incl/stdio.h"
 extern char * sys_errlist [ ] ; 
 
@@ -172,6 +157,30 @@
 #line 111 "../../incl/stdio.h"
 extern unsigned char * _bufendtab [ ] ; 
 
+#line 113 "../../incl/stdio.h"
+int feof ( ) ; 
+
+#line 114 "../../incl/stdio.h"
+int ferror ( ) ; 
+
+#line 115 "../../incl/stdio.h"
+int fileno ( ) ; 
+
+#line 116 "../../incl/stdio.h"
+char * strerror ( ) ; 
+
+#line 118 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdin ( ) ; 
+
+#line 119 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdout ( ) ; 
+
+#line 120 "../../incl/stdio.h"
+extern struct _iobuf * _get_stderr ( ) ; 
+
+#line 132 "../../incl/stdio.h"
+int _main ( ) ; 
+
 #line 6 "../../src/token.h"
 extern int lex_clear ( ) ; 
 
@@ -2009,16 +2018,19 @@
 #line 292 "../../src/norm.c"
 case 97 : if ( _auto_this -> _basetype_b_name -> _name__O6.__C6_n_qualifier ) { 
 #line 295 "../../src/norm.c"
-_delete ( ( int * 
-#line 295 "../../src/norm.c"
-) _auto_this ) ; 
+Pbase _auto_b ; 
+
+#line 296 "../../src/norm.c"
+_auto_b = ( ( ( struct basetype * ) ( _auto_this -> _basetype_b_name -> _name__O6.__C6_n_qualifier ) ) ) ; 
+#line 296 "../../src/norm.c"
 
 #line 297 "../../src/norm.c"
-{ 
+_delete ( ( int * ) _auto_this ) ; 
+
 #line 297 "../../src/norm.c"
-{ _auto__result = ( ( ( struct basetype * ) ( _auto_this -> _basetype_b_name -> _name__O6.__C6_n_qualifier ) ) 
+{ 
 #line 297 "../../src/norm.c"
-) ; 
+{ _auto__result = _auto_b ; 
 
 #line 297 "../../src/norm.c"
 return _auto__result ; 
diff -uwrN cfront-1a/scratch/src/print..c cfront-1b/scratch/src/print..c
--- cfront-1a/scratch/src/print..c	1986-02-07 16:34:59.000000000 +0100
+++ cfront-1b/scratch/src/print..c	2007-09-22 15:17:21.000000000 +0200
@@ -10,18 +10,6 @@
 #line 1 "../../src/print.c"
 typedef char * va_list ; 
 
-#line 12 "../../incl/stdio.h"
-struct _iobuf { /* sizeof = 16 */
-int __iobuf__cnt ; 
-char * __iobuf__ptr ; 
-char * __iobuf__base ; 
-char __iobuf__flag ; 
-char __iobuf__file ; 
-} ; 
-
-#line 20 "../../incl/stdio.h"
-extern struct _iobuf _iob [ 20] ; 
-
 #line 36 "../../incl/stdio.h"
 extern int _flsbuf ( ) ; 
 
@@ -160,9 +148,6 @@
 #line 106 "../../incl/stdio.h"
 extern int perror ( ) ; 
 
-#line 108 "../../incl/stdio.h"
-extern int errno ; 
-
 #line 109 "../../incl/stdio.h"
 extern char * sys_errlist [ ] ; 
 
@@ -172,6 +157,30 @@
 #line 111 "../../incl/stdio.h"
 extern unsigned char * _bufendtab [ ] ; 
 
+#line 113 "../../incl/stdio.h"
+int feof ( ) ; 
+
+#line 114 "../../incl/stdio.h"
+int ferror ( ) ; 
+
+#line 115 "../../incl/stdio.h"
+int fileno ( ) ; 
+
+#line 116 "../../incl/stdio.h"
+char * strerror ( ) ; 
+
+#line 118 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdin ( ) ; 
+
+#line 119 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdout ( ) ; 
+
+#line 120 "../../incl/stdio.h"
+extern struct _iobuf * _get_stderr ( ) ; 
+
+#line 132 "../../incl/stdio.h"
+int _main ( ) ; 
+
 #line 6 "../../src/token.h"
 extern int lex_clear ( ) ; 
 
@@ -1332,11 +1341,7 @@
 ntok = 0 ; 
 
 #line 54 "../../src/print.c"
-( ( -- out_file -> __iobuf__cnt ) >= 0 ) ? ( ( ( int ) 
-#line 54 "../../src/print.c"
-( ( * ( out_file -> __iobuf__ptr ++ ) ) = 10) ) ) : _flsbuf ( 
-#line 54 "../../src/print.c"
-10, ( struct _iobuf * ) out_file ) ; 
+fputc ( ( int ) '\n' , ( struct _iobuf * ) out_file ) ; 
 
 #line 55 "../../src/print.c"
 last_line . _loc_line ++ ; 
@@ -4407,11 +4412,13 @@
 goto cmp ; 
 
 #line 1449 "../../src/print.c"
-case 125 : case 158 : case 110 : if ( ( ( ( struct ptr * ) 
+case 125 : case 158 : case 110 : if ( ( ! _auto_this -> _expr__O4.__C4_e2 -> _expr__O2.__C2_tp ) || 
+#line 1449 "../../src/print.c"
+( ( ( ( struct ptr * ) ( _auto_t1 ) ) ) -> _ptr_typ != ( 
 #line 1449 "../../src/print.c"
-( _auto_t1 ) ) ) -> _ptr_typ != ( ( ( struct ptr * ) ( _auto_this -> 
+( ( struct ptr * ) ( _auto_this -> _expr__O4.__C4_e2 -> _expr__O2.__C2_tp ) ) ) -> _ptr_typ ) ) 
 #line 1449 "../../src/print.c"
-_expr__O4.__C4_e2 -> _expr__O2.__C2_tp ) ) ) -> _ptr_typ ) 
+
 #line 1452 "../../src/print.c"
 { 
 #line 1452 "../../src/print.c"
@@ -5282,21 +5289,13 @@
 _auto_this -> _stmt__O9.__C9_for_init -> _stmt__O8.__C8_e ) ; 
 
 #line 1841 "../../src/print.c"
-( ( -- out_file -> __iobuf__cnt ) >= 0 ) ? ( ( ( int ) 
-#line 1841 "../../src/print.c"
-( ( * ( out_file -> __iobuf__ptr ++ ) ) = 59) ) ) : _flsbuf ( 
-#line 1841 "../../src/print.c"
-59, ( struct _iobuf * ) out_file ) ; 
+fputc ( ( int ) ';' , ( struct _iobuf * ) out_file ) ; 
 
 #line 1842 "../../src/print.c"
 if ( _auto_this -> _stmt__O8.__C8_e ) Eprint ( ( struct expr * ) _auto_this -> _stmt__O8.__C8_e ) ; 
 
 #line 1843 "../../src/print.c"
-( ( -- out_file -> __iobuf__cnt ) >= 0 ) ? ( ( ( int ) 
-#line 1843 "../../src/print.c"
-( ( * ( out_file -> __iobuf__ptr ++ ) ) = 59) ) ) : _flsbuf ( 
-#line 1843 "../../src/print.c"
-59, ( struct _iobuf * ) out_file ) ; 
+fputc ( ( int ) ';' , ( struct _iobuf * ) out_file ) ; 
 
 #line 1844 "../../src/print.c"
 if ( _auto_this -> _stmt__O7.__C7_e2 ) Eprint ( ( struct expr * ) _auto_this -> _stmt__O7.__C7_e2 ) ; 
diff -uwrN cfront-1a/scratch/src/repr..c cfront-1b/scratch/src/repr..c
--- cfront-1a/scratch/src/repr..c	1986-02-07 16:35:03.000000000 +0100
+++ cfront-1b/scratch/src/repr..c	2007-09-22 15:17:21.000000000 +0200
@@ -10,18 +10,6 @@
 #line 1 "../../src/repr.c"
 typedef char * va_list ; 
 
-#line 12 "../../incl/stdio.h"
-struct _iobuf { /* sizeof = 16 */
-int __iobuf__cnt ; 
-char * __iobuf__ptr ; 
-char * __iobuf__base ; 
-char __iobuf__flag ; 
-char __iobuf__file ; 
-} ; 
-
-#line 20 "../../incl/stdio.h"
-extern struct _iobuf _iob [ 20] ; 
-
 #line 36 "../../incl/stdio.h"
 extern int _flsbuf ( ) ; 
 
@@ -160,9 +148,6 @@
 #line 106 "../../incl/stdio.h"
 extern int perror ( ) ; 
 
-#line 108 "../../incl/stdio.h"
-extern int errno ; 
-
 #line 109 "../../incl/stdio.h"
 extern char * sys_errlist [ ] ; 
 
@@ -172,6 +157,30 @@
 #line 111 "../../incl/stdio.h"
 extern unsigned char * _bufendtab [ ] ; 
 
+#line 113 "../../incl/stdio.h"
+int feof ( ) ; 
+
+#line 114 "../../incl/stdio.h"
+int ferror ( ) ; 
+
+#line 115 "../../incl/stdio.h"
+int fileno ( ) ; 
+
+#line 116 "../../incl/stdio.h"
+char * strerror ( ) ; 
+
+#line 118 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdin ( ) ; 
+
+#line 119 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdout ( ) ; 
+
+#line 120 "../../incl/stdio.h"
+extern struct _iobuf * _get_stderr ( ) ; 
+
+#line 132 "../../incl/stdio.h"
+int _main ( ) ; 
+
 #line 6 "../../src/token.h"
 extern int lex_clear ( ) ; 
 
diff -uwrN cfront-1a/scratch/src/simpl..c cfront-1b/scratch/src/simpl..c
--- cfront-1a/scratch/src/simpl..c	1986-02-07 16:35:19.000000000 +0100
+++ cfront-1b/scratch/src/simpl..c	2007-09-22 15:17:21.000000000 +0200
@@ -10,18 +10,6 @@
 #line 1 "../../src/simpl.c"
 typedef char * va_list ; 
 
-#line 12 "../../incl/stdio.h"
-struct _iobuf { /* sizeof = 16 */
-int __iobuf__cnt ; 
-char * __iobuf__ptr ; 
-char * __iobuf__base ; 
-char __iobuf__flag ; 
-char __iobuf__file ; 
-} ; 
-
-#line 20 "../../incl/stdio.h"
-extern struct _iobuf _iob [ 20] ; 
-
 #line 36 "../../incl/stdio.h"
 extern int _flsbuf ( ) ; 
 
@@ -160,9 +148,6 @@
 #line 106 "../../incl/stdio.h"
 extern int perror ( ) ; 
 
-#line 108 "../../incl/stdio.h"
-extern int errno ; 
-
 #line 109 "../../incl/stdio.h"
 extern char * sys_errlist [ ] ; 
 
@@ -172,6 +157,30 @@
 #line 111 "../../incl/stdio.h"
 extern unsigned char * _bufendtab [ ] ; 
 
+#line 113 "../../incl/stdio.h"
+int feof ( ) ; 
+
+#line 114 "../../incl/stdio.h"
+int ferror ( ) ; 
+
+#line 115 "../../incl/stdio.h"
+int fileno ( ) ; 
+
+#line 116 "../../incl/stdio.h"
+char * strerror ( ) ; 
+
+#line 118 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdin ( ) ; 
+
+#line 119 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdout ( ) ; 
+
+#line 120 "../../incl/stdio.h"
+extern struct _iobuf * _get_stderr ( ) ; 
+
+#line 132 "../../incl/stdio.h"
+int _main ( ) ; 
+
 #line 6 "../../src/token.h"
 extern int lex_clear ( ) ; 
 
@@ -1350,15 +1359,45 @@
 #line 82 "../../src/size.h"
 extern int F_OPTIMIZED ; 
 
-#line 13 "../../incl/ctype.h"
-extern char _ctype [ ] ; 
-
 #line 32 "../../incl/ctype.h"
 extern int toupper ( ) ; 
 
 #line 33 "../../incl/ctype.h"
 extern int tolower ( ) ; 
 
+#line 35 "../../incl/ctype.h"
+int isalnum ( ) ; 
+
+#line 36 "../../incl/ctype.h"
+int isalpha ( ) ; 
+
+#line 37 "../../incl/ctype.h"
+int iscntrl ( ) ; 
+
+#line 38 "../../incl/ctype.h"
+int isdigit ( ) ; 
+
+#line 39 "../../incl/ctype.h"
+int isgraph ( ) ; 
+
+#line 40 "../../incl/ctype.h"
+int islower ( ) ; 
+
+#line 41 "../../incl/ctype.h"
+int isprint ( ) ; 
+
+#line 42 "../../incl/ctype.h"
+int ispunct ( ) ; 
+
+#line 43 "../../incl/ctype.h"
+int isspace ( ) ; 
+
+#line 44 "../../incl/ctype.h"
+int isupper ( ) ; 
+
+#line 45 "../../incl/ctype.h"
+int isxdigit ( ) ; 
+
 #line 34 "../../src/simpl.c"
 Pname new_fct ; 
 
@@ -3167,11 +3206,11 @@
 #line 667 "../../src/simpl.c"
 if ( ( ( ( _auto_s [ 0 ] ) == '_' ) && ( ( 
 #line 667 "../../src/simpl.c"
-_auto_s [ 1 ] ) == 'D' ) ) && ( ( ( _ctype + 1 ) [ _auto_c3 ] 
+_auto_s [ 1 ] ) == 'D' ) ) && isdigit ( ( int ) _auto_c3 ) ) 
 #line 667 "../../src/simpl.c"
-) & 04 ) ) 
+continue 
 #line 667 "../../src/simpl.c"
-continue ; 
+; 
 } 
 #line 670 "../../src/simpl.c"
 if ( _auto_cln = _type_is_cl_obj ( ( struct type * ) _auto_n -> _expr__O2.__C2_tp ) ) { 
diff -uwrN cfront-1a/scratch/src/size..c cfront-1b/scratch/src/size..c
--- cfront-1a/scratch/src/size..c	1986-02-07 16:35:23.000000000 +0100
+++ cfront-1b/scratch/src/size..c	2007-09-22 15:17:21.000000000 +0200
@@ -10,18 +10,6 @@
 #line 1 "../../src/size.c"
 typedef char * va_list ; 
 
-#line 12 "../../incl/stdio.h"
-struct _iobuf { /* sizeof = 16 */
-int __iobuf__cnt ; 
-char * __iobuf__ptr ; 
-char * __iobuf__base ; 
-char __iobuf__flag ; 
-char __iobuf__file ; 
-} ; 
-
-#line 20 "../../incl/stdio.h"
-extern struct _iobuf _iob [ 20] ; 
-
 #line 36 "../../incl/stdio.h"
 extern int _flsbuf ( ) ; 
 
@@ -160,9 +148,6 @@
 #line 106 "../../incl/stdio.h"
 extern int perror ( ) ; 
 
-#line 108 "../../incl/stdio.h"
-extern int errno ; 
-
 #line 109 "../../incl/stdio.h"
 extern char * sys_errlist [ ] ; 
 
@@ -172,6 +157,30 @@
 #line 111 "../../incl/stdio.h"
 extern unsigned char * _bufendtab [ ] ; 
 
+#line 113 "../../incl/stdio.h"
+int feof ( ) ; 
+
+#line 114 "../../incl/stdio.h"
+int ferror ( ) ; 
+
+#line 115 "../../incl/stdio.h"
+int fileno ( ) ; 
+
+#line 116 "../../incl/stdio.h"
+char * strerror ( ) ; 
+
+#line 118 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdin ( ) ; 
+
+#line 119 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdout ( ) ; 
+
+#line 120 "../../incl/stdio.h"
+extern struct _iobuf * _get_stderr ( ) ; 
+
+#line 132 "../../incl/stdio.h"
+int _main ( ) ; 
+
 #line 6 "../../src/token.h"
 extern int lex_clear ( ) ; 
 
@@ -1796,74 +1805,73 @@
 int _auto__result ; 
 
 #line 168 "../../src/size.c"
-fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , ( 
+fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( char * ) "%s sizes and alignments\n\n", _auto_s ) 
 #line 168 "../../src/size.c"
-char * ) "%s sizes and alignments\n\n", _auto_s ) ; 
+; 
 
 #line 170 "../../src/size.c"
-fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , ( 
+fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( char * ) "   size    align\n") ; 
 #line 170 "../../src/size.c"
-char * ) "	size	align\n") ; 
 
 #line 171 "../../src/size.c"
-fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , ( 
+fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( char * ) "char       %d      %d\n", SZ_CHAR , 
 #line 171 "../../src/size.c"
-char * ) "char	%d	%d\n", SZ_CHAR , AL_CHAR ) ; 
+AL_CHAR ) ; 
 
 #line 172 "../../src/size.c"
-fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , ( 
+fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( char * ) "short      %d      %d\n", SZ_SHORT , 
 #line 172 "../../src/size.c"
-char * ) "short	%d	%d\n", SZ_SHORT , AL_SHORT ) ; 
+AL_SHORT ) ; 
 
 #line 173 "../../src/size.c"
-fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , ( 
+fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( char * ) "int        %d      %d\n", SZ_INT , 
 #line 173 "../../src/size.c"
-char * ) "int	%d	%d\n", SZ_INT , AL_INT ) ; 
+AL_INT ) ; 
 
 #line 174 "../../src/size.c"
-fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , ( 
+fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( char * ) "long       %d      %d\n", SZ_LONG , 
 #line 174 "../../src/size.c"
-char * ) "long	%d	%d\n", SZ_LONG , AL_LONG ) ; 
+AL_LONG ) ; 
 
 #line 175 "../../src/size.c"
-fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , ( 
+fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( char * ) "float      %d      %d\n", SZ_FLOAT , 
 #line 175 "../../src/size.c"
-char * ) "float	%d	%d\n", SZ_FLOAT , AL_FLOAT ) ; 
+AL_FLOAT ) ; 
 
 #line 176 "../../src/size.c"
-fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , ( 
+fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( char * ) "double     %d      %d\n", SZ_DOUBLE , 
 #line 176 "../../src/size.c"
-char * ) "double	%d	%d\n", SZ_DOUBLE , AL_DOUBLE ) ; 
+AL_DOUBLE ) ; 
 
 #line 177 "../../src/size.c"
-fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , ( 
+fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( char * ) "bptr       %d      %d\n", SZ_BPTR , 
 #line 177 "../../src/size.c"
-char * ) "bptr	%d	%d\n", SZ_BPTR , AL_BPTR ) ; 
+AL_BPTR ) ; 
 
 #line 178 "../../src/size.c"
-fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , ( 
+fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( char * ) "wptr       %d      %d\n", SZ_WPTR , 
 #line 178 "../../src/size.c"
-char * ) "wptr	%d	%d\n", SZ_WPTR , AL_WPTR ) ; 
+AL_WPTR ) ; 
 
 #line 179 "../../src/size.c"
-fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , ( 
+fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( char * ) "struct     %d      %d\n", SZ_STRUCT , 
 #line 179 "../../src/size.c"
-char * ) "struct	%d	%d\n", SZ_STRUCT , AL_STRUCT ) ; 
+AL_STRUCT ) ; 
 
 #line 180 "../../src/size.c"
-fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , ( 
+fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( char * ) "frame      %d      %d\n", SZ_FRAME , 
 #line 180 "../../src/size.c"
-char * ) "frame	%d	%d\n", SZ_FRAME , AL_FRAME ) ; 
+AL_FRAME ) ; 
 
 #line 181 "../../src/size.c"
-fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , ( 
+fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( char * ) "large   %s\n\n", LARGEST_INT ) 
 #line 181 "../../src/size.c"
-char * ) "large   %s\n\n", LARGEST_INT ) ; 
+; 
 
 #line 184 "../../src/size.c"
-fprintf ( ( struct _iobuf * ) ( & ( _iob [ 2 ] ) ) , ( 
+fprintf ( ( struct _iobuf * ) _get_stderr ( ) , ( char * ) "%d bits in a byte, %d bits in a word, %d bytes in a word\n", BI_IN_BYTE , 
 #line 184 "../../src/size.c"
-char * ) "%d bits in a byte, %d bits in a word, %d bytes in a word\n", BI_IN_BYTE , BI_IN_WORD , SZ_WORD ) ; 
+BI_IN_WORD , SZ_WORD ) ; 
 
 #line 185 "../../src/size.c"
 { 
diff -uwrN cfront-1a/scratch/src/table..c cfront-1b/scratch/src/table..c
--- cfront-1a/scratch/src/table..c	1986-02-07 16:35:28.000000000 +0100
+++ cfront-1b/scratch/src/table..c	2007-09-22 15:17:21.000000000 +0200
@@ -10,18 +10,6 @@
 #line 1 "../../src/table.c"
 typedef char * va_list ; 
 
-#line 12 "../../incl/stdio.h"
-struct _iobuf { /* sizeof = 16 */
-int __iobuf__cnt ; 
-char * __iobuf__ptr ; 
-char * __iobuf__base ; 
-char __iobuf__flag ; 
-char __iobuf__file ; 
-} ; 
-
-#line 20 "../../incl/stdio.h"
-extern struct _iobuf _iob [ 20] ; 
-
 #line 36 "../../incl/stdio.h"
 extern int _flsbuf ( ) ; 
 
@@ -160,9 +148,6 @@
 #line 106 "../../incl/stdio.h"
 extern int perror ( ) ; 
 
-#line 108 "../../incl/stdio.h"
-extern int errno ; 
-
 #line 109 "../../incl/stdio.h"
 extern char * sys_errlist [ ] ; 
 
@@ -172,6 +157,30 @@
 #line 111 "../../incl/stdio.h"
 extern unsigned char * _bufendtab [ ] ; 
 
+#line 113 "../../incl/stdio.h"
+int feof ( ) ; 
+
+#line 114 "../../incl/stdio.h"
+int ferror ( ) ; 
+
+#line 115 "../../incl/stdio.h"
+int fileno ( ) ; 
+
+#line 116 "../../incl/stdio.h"
+char * strerror ( ) ; 
+
+#line 118 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdin ( ) ; 
+
+#line 119 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdout ( ) ; 
+
+#line 120 "../../incl/stdio.h"
+extern struct _iobuf * _get_stderr ( ) ; 
+
+#line 132 "../../incl/stdio.h"
+int _main ( ) ; 
+
 #line 6 "../../src/token.h"
 extern int lex_clear ( ) ; 
 
diff -uwrN cfront-1a/scratch/src/typ2..c cfront-1b/scratch/src/typ2..c
--- cfront-1a/scratch/src/typ2..c	1986-02-07 16:35:39.000000000 +0100
+++ cfront-1b/scratch/src/typ2..c	2007-09-22 15:17:21.000000000 +0200
@@ -10,18 +10,6 @@
 #line 1 "../../src/typ2.c"
 typedef char * va_list ; 
 
-#line 12 "../../incl/stdio.h"
-struct _iobuf { /* sizeof = 16 */
-int __iobuf__cnt ; 
-char * __iobuf__ptr ; 
-char * __iobuf__base ; 
-char __iobuf__flag ; 
-char __iobuf__file ; 
-} ; 
-
-#line 20 "../../incl/stdio.h"
-extern struct _iobuf _iob [ 20] ; 
-
 #line 36 "../../incl/stdio.h"
 extern int _flsbuf ( ) ; 
 
@@ -160,9 +148,6 @@
 #line 106 "../../incl/stdio.h"
 extern int perror ( ) ; 
 
-#line 108 "../../incl/stdio.h"
-extern int errno ; 
-
 #line 109 "../../incl/stdio.h"
 extern char * sys_errlist [ ] ; 
 
@@ -172,6 +157,30 @@
 #line 111 "../../incl/stdio.h"
 extern unsigned char * _bufendtab [ ] ; 
 
+#line 113 "../../incl/stdio.h"
+int feof ( ) ; 
+
+#line 114 "../../incl/stdio.h"
+int ferror ( ) ; 
+
+#line 115 "../../incl/stdio.h"
+int fileno ( ) ; 
+
+#line 116 "../../incl/stdio.h"
+char * strerror ( ) ; 
+
+#line 118 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdin ( ) ; 
+
+#line 119 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdout ( ) ; 
+
+#line 120 "../../incl/stdio.h"
+extern struct _iobuf * _get_stderr ( ) ; 
+
+#line 132 "../../incl/stdio.h"
+int _main ( ) ; 
+
 #line 6 "../../src/token.h"
 extern int lex_clear ( ) ; 
 
diff -uwrN cfront-1a/scratch/src/typ..c cfront-1b/scratch/src/typ..c
--- cfront-1a/scratch/src/typ..c	1986-02-07 16:35:34.000000000 +0100
+++ cfront-1b/scratch/src/typ..c	2007-09-22 15:17:21.000000000 +0200
@@ -10,18 +10,6 @@
 #line 1 "../../src/typ.c"
 typedef char * va_list ; 
 
-#line 12 "../../incl/stdio.h"
-struct _iobuf { /* sizeof = 16 */
-int __iobuf__cnt ; 
-char * __iobuf__ptr ; 
-char * __iobuf__base ; 
-char __iobuf__flag ; 
-char __iobuf__file ; 
-} ; 
-
-#line 20 "../../incl/stdio.h"
-extern struct _iobuf _iob [ 20] ; 
-
 #line 36 "../../incl/stdio.h"
 extern int _flsbuf ( ) ; 
 
@@ -160,9 +148,6 @@
 #line 106 "../../incl/stdio.h"
 extern int perror ( ) ; 
 
-#line 108 "../../incl/stdio.h"
-extern int errno ; 
-
 #line 109 "../../incl/stdio.h"
 extern char * sys_errlist [ ] ; 
 
@@ -172,6 +157,30 @@
 #line 111 "../../incl/stdio.h"
 extern unsigned char * _bufendtab [ ] ; 
 
+#line 113 "../../incl/stdio.h"
+int feof ( ) ; 
+
+#line 114 "../../incl/stdio.h"
+int ferror ( ) ; 
+
+#line 115 "../../incl/stdio.h"
+int fileno ( ) ; 
+
+#line 116 "../../incl/stdio.h"
+char * strerror ( ) ; 
+
+#line 118 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdin ( ) ; 
+
+#line 119 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdout ( ) ; 
+
+#line 120 "../../incl/stdio.h"
+extern struct _iobuf * _get_stderr ( ) ; 
+
+#line 132 "../../incl/stdio.h"
+int _main ( ) ; 
+
 #line 6 "../../src/token.h"
 extern int lex_clear ( ) ; 
 
diff -uwrN cfront-1a/scratch/src/y.tab..c cfront-1b/scratch/src/y.tab..c
--- cfront-1a/scratch/src/y.tab..c	1986-02-07 16:35:56.000000000 +0100
+++ cfront-1b/scratch/src/y.tab..c	2007-09-22 15:17:21.000000000 +0200
@@ -94,18 +94,6 @@
 extern int F_OPTIMIZED ; 
 typedef char * va_list ; 
 
-#line 12 "../../incl/stdio.h"
-struct _iobuf { /* sizeof = 16 */
-int __iobuf__cnt ; 
-char * __iobuf__ptr ; 
-char * __iobuf__base ; 
-char __iobuf__flag ; 
-char __iobuf__file ; 
-} ; 
-
-#line 20 "../../incl/stdio.h"
-extern struct _iobuf _iob [ 20] ; 
-
 #line 36 "../../incl/stdio.h"
 extern int _flsbuf ( ) ; 
 
@@ -244,9 +232,6 @@
 #line 106 "../../incl/stdio.h"
 extern int perror ( ) ; 
 
-#line 108 "../../incl/stdio.h"
-extern int errno ; 
-
 #line 109 "../../incl/stdio.h"
 extern char * sys_errlist [ ] ; 
 
@@ -256,6 +241,30 @@
 #line 111 "../../incl/stdio.h"
 extern unsigned char * _bufendtab [ ] ; 
 
+#line 113 "../../incl/stdio.h"
+int feof ( ) ; 
+
+#line 114 "../../incl/stdio.h"
+int ferror ( ) ; 
+
+#line 115 "../../incl/stdio.h"
+int fileno ( ) ; 
+
+#line 116 "../../incl/stdio.h"
+char * strerror ( ) ; 
+
+#line 118 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdin ( ) ; 
+
+#line 119 "../../incl/stdio.h"
+extern struct _iobuf * _get_stdout ( ) ; 
+
+#line 120 "../../incl/stdio.h"
+extern struct _iobuf * _get_stderr ( ) ; 
+
+#line 132 "../../incl/stdio.h"
+int _main ( ) ; 
+
 #line 6 "../../src/token.h"
 extern int lex_clear ( ) ; 
 
@@ -4835,10 +4844,10 @@
 #line 956 "gram.y"
 ) ; 
 } 
-#line 957 "gram.y"
+#line 958 "gram.y"
 break ; 
 
-#line 958 "gram.y"
+#line 959 "gram.y"
 case 156 : { 
 #line 959 "gram.y"
 Pexpr _auto_e ; 
diff -uwrN cfront-1a/src/alloc.c cfront-1b/src/alloc.c
--- cfront-1a/src/alloc.c	1986-02-07 16:36:07.000000000 +0100
+++ cfront-1b/src/alloc.c	2007-09-22 15:17:21.000000000 +0200
@@ -1,7 +1,7 @@
 /* @(#) alloc.c 1.3 1/27/86 17:48:32 */ 
 /*ident	"@(#)cfront:src/alloc.c	1.3" */
 #include "cfront.h"
-
+#if 0
 extern void free(char*);
 extern char *malloc(unsigned);
 extern void print_free();
@@ -139,3 +139,14 @@
 		q->next = p;
 	allocp = q;
 }
+#else
+void *calloc(unsigned a, unsigned b);
+void *malloc(unsigned nbytes)
+{
+    return calloc(1, nbytes);
+}
+
+void print_free() {}
+
+int NFn, NFtn, NFbt, NFpv, NFf, NFe, NFs, NFc;
+#endif
diff -uwrN cfront-1a/src/dcl2.c cfront-1b/src/dcl2.c
--- cfront-1a/src/dcl2.c	1986-02-07 16:36:16.000000000 +0100
+++ cfront-1b/src/dcl2.c	2007-09-22 15:17:21.000000000 +0200
@@ -100,7 +100,7 @@
 			char buf[128];
 			char* bb = n->tp->signature(buf);
 			int l1 = strlen(s);
-			int l2 = bb-buf-1;
+                        int l2 = bb-buf;
 			char* p = new char[l1+l2+1];
 			strcpy(p,s);
 			strcpy(p+l1,buf);
diff -uwrN cfront-1a/src/lex.c cfront-1b/src/lex.c
--- cfront-1a/src/lex.c	1986-02-07 16:36:31.000000000 +0100
+++ cfront-1b/src/lex.c	2007-09-22 15:17:21.000000000 +0200
@@ -90,8 +90,8 @@
 					// that is current #include nest level
 
 class loc curloc;
-FILE * out_file = stdout;
-FILE * in_file = stdin;
+FILE * out_file;// = stdout;
+FILE * in_file;// = stdin;
 Ptable ktbl;
 int br_level = 0;		/* number of unmatched ``(''s */
 int bl_level = 0;		/* number of unmatched ``{''s */
@@ -203,7 +203,7 @@
 	if (0<=file && file<MAXFILE) {
 		char* f = file_name[file];
 		if (f==0) f = (src_file_name) ? src_file_name : "";
-		fprintf(p,"\"%s\", line %d: ",f,line);
+               fprintf(p,"%s:%d: ",f,line);
 	}
 }	
 
@@ -947,7 +947,7 @@
 			switch (get(c)) {
 			case '"':
 				pch('\0');
-				if (get(c) != '\n') error("unX eol on # line");
+                                while (get(c) != '\n' && c != EOF); // if (get(c) != '\n') error("unX eol on # line");
 				if (*txtstart) {	// stack file name
 					if (curr_file == 0) goto push;
 
@@ -1001,7 +1001,7 @@
 			break;
 		default:	/* pass #rubbish through */
 			pch('#');
-			pch('i');
+                       pch(c);
 			while (get(c) != '\n') pch(c);
 			pch('\0');
 			fprintf(out_file,"\n%s\n",txtstart);
diff -uwrN cfront-1a/src/main.c cfront-1b/src/main.c
--- cfront-1a/src/main.c	1986-02-07 16:36:32.000000000 +0100
+++ cfront-1b/src/main.c	2007-09-22 15:17:21.000000000 +0200
@@ -73,7 +73,7 @@
 		fprintf(stderr,"start time: %s", ctime(&start_time) );
 		fprintf(stderr,"stop time:  %s", ctime(&stop_time) );
 		fprintf(stderr,"real time delay %ld: %d lines per second\n",
-			stop_time-start_time, Nline/(stop_time-start_time) );
+                        stop_time-start_time, Nline/(stop_time-start_time+1) );
 		fflush(stderr);
 	}
 	fprintf(stderr,"free store=%dbytes alloc()=%d free()=%d ",
@@ -357,7 +357,7 @@
 	(void) signal(SIGQUIT,sig_exit);
 */
 
-
+       out_file = stdout, in_file = stdin;
 	error_init();
 
 	for (i=1; i<argc; ++i) {
diff -uwrN cfront-1a/src/norm.c cfront-1b/src/norm.c
--- cfront-1a/src/norm.c	1986-02-07 16:36:35.000000000 +0100
+++ cfront-1b/src/norm.c	2007-09-22 15:17:21.000000000 +0200
@@ -293,8 +293,8 @@
 			/* use a single base saved in the keyword */
 //fprintf(stderr,"type %d bn %d %s q %d\n",this,b_name,b_name->string,b_name->n_qualifier);
 			if (b_name->n_qualifier) {
-				delete this;
-				return (Pbase)b_name->n_qualifier;
+                                Pbase b = (Pbase)b_name->n_qualifier;
+                               delete this; return b;
 			}
 			else {
 				PERM(this);
diff -uwrN cfront-1a/src/print.c cfront-1b/src/print.c
--- cfront-1a/src/print.c	1986-02-07 16:36:39.000000000 +0100
+++ cfront-1b/src/print.c	2007-09-22 15:17:21.000000000 +0200
@@ -1449,7 +1449,7 @@
 			case PTR:
 			case RPTR:
 			case VEC:
-				if (Pptr(t1)->typ != Pptr(e2->tp)->typ) {
+                               if (!e2->tp || Pptr(t1)->typ != Pptr(e2->tp)->typ) {
 					puttok(LP);
 					bit oc = Cast;
 					Cast = 1;
